我已经完成了一段代码,我使用 .NET 2.0 中的 adapter.Update 方法将给定的数据集更新到 oracle 数据库中 然而,同一段代码给出了异常 “当传递带有新行的 DataRow 集合时,更新需要有效的 InsertCommand”
如果我遍历数据集并插入每一行,这会花费很多时间(超过 5000 条记录)。
请提出一种将整个数据集一次更新到数据库中的方法。
提前致谢
最佳答案
这样做的方法是一次一行
conn=objDbClass.open_connection();
string cmdStr = "select COL1, COL2 from MY_TABLE";
OleDbDataAdapter adapter = new OleDbDataAdapter(cmdStr, conn);
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
DataSet dataset1 = new DataSet();
adapter.Fill(dataset1,"Table1");
string err_txt="";
int err_cnt=0;
int call_no=Find_CallNo();
for (int arcnt=0;arcnt
DataRow dr1=dataset1.Tables[0].NewRow();
dr1["COL1"]=drxl["COL1"].ToString();
dr1["COL2"]=drxl["COL2"].ToString();
dataset1.Tables[0].Rows.Add(dr1);
int no_updated_rows = adapter.Update(dataset1,"Table1");
int len = xlds.Tables[0].Columns.Count;
}
}
}
此处的每一行都是从 excel 中读取并放置在数据集的数据表中。然后调用数据适配器的更新函数。因此,如果数据集有 40 行,更新函数将被调用 40 次。
关于c# - 在 .NET 1.1 中使用数据集更新 oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9139642/