C# 使用.NET 1.1中的数据集更新oracle
我编写了一段代码,其中使用.NET2.0中的adapter.update方法将给定的数据集更新到oracle数据库中 然而,同一段代码给出了一个例外 “当用新行传递DataRow集合时,更新需要有效的InsertCommand” 如果我遍历数据集并插入每一行,则需要花费大量时间(超过5000条记录) 请建议一种方法,一次将整个数据集更新到数据库中C# 使用.NET 1.1中的数据集更新oracle,c#,.net,oracle,C#,.net,Oracle,我编写了一段代码,其中使用.NET2.0中的adapter.update方法将给定的数据集更新到oracle数据库中 然而,同一段代码给出了一个例外 “当用新行传递DataRow集合时,更新需要有效的InsertCommand” 如果我遍历数据集并插入每一行,则需要花费大量时间(超过5000条记录) 请建议一种方法,一次将整个数据集更新到数据库中 提前感谢这样做的方法是一次一行 conn=objDbClass.open_connection(); string cmdStr=“从我的表格中选择
提前感谢这样做的方法是一次一行
conn=objDbClass.open_connection();
string cmdStr=“从我的表格中选择COL1、COL2”;
OleDbDataAdapter=新的OleDbDataAdapter(cmdStr,conn);
OleDbCommandBuilder=新的OleDbCommandBuilder(适配器);
DataSet dataset1=新数据集();
适配器填充(数据集1,“表1”);
字符串err_txt=“”;
int err_cnt=0;
int call_no=Find_CallNo();
对于(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(数据集1,“表1”);
int len=xlds.Tables[0].Columns.Count;
}
}
}
此处,从excel中读取每一行并将其放入数据集的数据表中。然后调用数据适配器的更新函数。因此,如果数据集有40行,则更新函数将被调用40次。执行此操作的方法是一次调用一行
conn=objDbClass.open_connection();
string cmdStr=“从我的表格中选择COL1、COL2”;
OleDbDataAdapter=新的OleDbDataAdapter(cmdStr,conn);
OleDbCommandBuilder=新的OleDbCommandBuilder(适配器);
DataSet dataset1=新数据集();
适配器填充(数据集1,“表1”);
字符串err_txt=“”;
int err_cnt=0;
int call_no=Find_CallNo();
对于(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(数据集1,“表1”);
int len=xlds.Tables[0].Columns.Count;
}
}
}
此处,从excel中读取每一行,并将其放入数据集的数据表中。然后调用数据适配器的更新函数。因此,如果数据集有40行,则更新函数将被调用40次
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;
}
}
}