我已经完成了一个代码,我使用.NET 2.0中的adapter.Update方法将给定的数据集更新到oracle数据库中 然而,同一段代码给出了异常 “当使用新行传递DataRow集合时,更新需要有效的InsertCommand”
如果我遍历数据集并插入每一行,则需要花费大量时间(超过5000条记录)。
请建议一种方法,一次将整个数据集更新到数据库中。
提前致谢
答案 0 :(得分:0)
这样做的方法是一次一行
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次。