【发布时间】:2012-02-26 17:16:22
【问题描述】:
我已经完成了一个代码,我使用 .NET 2.0 中的 adapter.Update 方法将给定的数据集更新到 oracle 数据库中 然而,同一段代码给出了异常 “当通过新行传递 DataRow 集合时,更新需要有效的 InsertCommand”
如果我遍历数据集并插入每一行,则需要很长时间(超过 5000 条记录)。
请建议一次将整个数据集更新到数据库中的方法。
提前致谢
【问题讨论】:
我已经完成了一个代码,我使用 .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 次。
【讨论】: