0
我正在將vba程序轉換爲c#。 vba程序使用來自不同記錄集rst2的值修改/添加行到記錄集rst1。 c#版本使用OleDbDataAdapter將查詢中的數據填充到數據集csrst1表0中。c#使用數據集更新Access數據庫表
在vba版本中,rst1.update似乎直接修改數據庫錶行。問題是,在更新/修改數據集之後是否有更新訪問數據庫行的方法?有一個更好的方法嗎?
這是我到目前爲止已經完成了...
vba:
rst1.FindFirst "[L1]=" & ![VendorID] & " AND [D1]=#" & ![REQ_IP_DATE] & "#"
If rst1.NoMatch Then
rst1.AddNew
'...new row fields set
rst1.Update
Else
rst1.Edit
'...rows edited
rst1.Update
End If
(上面的代碼中的隨着RST2做循環。該RST1字段與RST2值進行更新。)
c#:
foreach(DataRow dr in csrst2.Tables[0].Rows)
{
var findfirst = csrst1.Tables[0].Select("[L1]=" + dr[0] + " AND [D1]=#" + dr[1] + "#");
if(findfirst.Count() < 1)
{
var newRow = csrst1.Tables[0].NewRow();
//...new row fields set
csrst1.Tables[0].Rows.Add(newRow);
}
else
{
findfirst[0].BeginEdit();
//...rows edited
findfirst[0].AcceptChanges();
}
}