大哥們 我想將shp資料讀取到datagridview中做修改 如圖 然后根據標識碼匹配另外一個要素類 再根據農村道路識別欄位 插值(撤銷變紅的行不插入) 速度太慢了 有效率快的方法嗎?ITable table = (ITable)recordFeaClass;
IRow row = null;
int oneCode = table.Fields.FindField("YJLDM");
int oneName = table.Fields.FindField("YJLMC");
int twoCode = table.Fields.FindField("EJLDM");
int twoName = table.Fields.FindField("EJLMC");
int threeCode = table.Fields.FindField("SJLDM");
int threeName = table.Fields.FindField("SJLMC");
int isConversion = recordFeaClass.Fields.FindField("SFZH");
for (int i = 0; i < dgvResult.Rows.Count; i++)
{
string bsm = dgvResult.Rows[i].Cells["標識碼"].Value.ToString();
string ncdlsbzd = dgvResult.Rows[i].Cells["農村道路識別欄位"].Value.ToString();
string num = dgvResult.Rows[i].Cells["Action"].Value.ToString();//是否撤銷
if (num == "true")
{
if (bsm != null)
{
queryFilter.WhereClause = "BSM =" + "'" + bsm + "'";
ICursor updateCursor = table.Update(queryFilter, true);
while ((row = updateCursor.NextRow()) != null)
{
System.Windows.Forms.Application.DoEvents();
bool form = frm.form;
if (form == false)
{
return;
}
a++;
//第三步:準備相關資料。
setFormTextValue(a);
row.set_Value(isConversion, "是");
if (ncdlsbzd == "硬化農村道路")
{
row.set_Value(oneCode, "06");
row.set_Value(oneName, "農業設施建設用地");
row.set_Value(twoCode, "0601");
row.set_Value(twoName, "鄉村道路用地");
row.set_Value(threeCode, "060101");
row.set_Value(threeName, "村道用地");
}
else if (ncdlsbzd == "非硬化農村道路")
{
row.set_Value(oneCode, "23");
row.set_Value(oneName, "其他土地");
row.set_Value(twoCode, "2303");
row.set_Value(twoName, "田間道");
row.set_Value(threeCode, "");
row.set_Value(threeName, "");
}
updateCursor.UpdateRow(row);
row = updateCursor.NextRow();
}
}
}
}
120條資料都要4,5分鐘 有什么快速的方法嗎?大哥們幫幫忙!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/276487.html
標籤:C#
