如何将整个DataTable插入数据库。

狼王_ 2010-11-01 01:39:20
我用代码创建一个与数据库结构相同的DataTable。然后向DataTable中插入几行数据,有没有方法将这个DataTable一次性插入数据库啊?
...全文
771 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
狼王_ 2010-11-01
  • 打赏
  • 举报
回复
郁闷,今天RP值太低了,现在能运行成功了。不知道刚才哪错了。 把代码贴出来
DataTable dt = new DataTable();
string a = ConfigurationManager.ConnectionStrings["sqlConn"].ToString();
SqlConnection con = new SqlConnection(a);
SqlCommand cmd = new SqlCommand("select * from student where 1=2", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
SqlCommandBuilder Builder = new SqlCommandBuilder(sda);
sda.Fill(dt);
DataRow dr;
dr = dt.NewRow();
dr[0] = "1";
dr[1] = "q";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "2";
dr[1] = "W";
dt.Rows.Add(dr);
sda.Update(dt);
_为了部落 2010-11-01
  • 打赏
  • 举报
回复
sqlDataAdapter的update方法,自己可以查查资料。
yan19861206 2010-11-01
  • 打赏
  • 举报
回复
用循环遍历应该简单点
hanqing_liu 2010-11-01
  • 打赏
  • 举报
回复
SqlConnection myConn = new SqlConnection(myConnection);
SqlDataAdapter myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);
SqlCommandBuilder custCB = new SqlCommandBuilder(myDataAdapter);
myConnection : 数据库连接字符串
mySelectQuery : sql 语句
generhappy 2010-11-01
  • 打赏
  • 举报
回复
循环添加,我貌似就是这样做的,就怕数据量大。。。。
狼王_ 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 li309000011 的回复:]
1楼正解,这个可以直接保存回去的
[/Quote]
1楼方法中的参数赋什么值啊?
SK_Aqi 2010-11-01
  • 打赏
  • 举报
回复
好像看不懂就是正解了..
li309000011 2010-11-01
  • 打赏
  • 举报
回复
1楼正解,这个可以直接保存回去的
gp549483387 2010-11-01
  • 打赏
  • 举报
回复
数据库的写入都是一条条进行的,一次性插入也只是循环遍历罢了
吴青峰 2010-11-01
  • 打赏
  • 举报
回复
不是说一次性添加效率就搞,有时比循环慢的多,因为一次性添加里面肯定有很多已经定义好的规则。不过代码的确是清晰点而已。
狼王_ 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shiyuyao1987 的回复:]
循环添加也行
[/Quote]
循环添加我是会的,我在网上看到说可以一次性添加,但是网上的资料又说的太模糊。
shiyuyao1987 2010-11-01
  • 打赏
  • 举报
回复
循环添加也行
狼王_ 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hujinn 的回复:]
可以用CommandBuilder
如下:

C# code

public DataSet SelectSqlSrvRows(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName) {
SqlConnection myConn =……
[/Quote]
你写的方法我是看不懂,鸭梨很大。。。。
hujinn 2010-11-01
  • 打赏
  • 举报
回复
可以用CommandBuilder
如下:

public DataSet SelectSqlSrvRows(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName) {
SqlConnection myConn = new SqlConnection(myConnection);
SqlDataAdapter myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);
SqlCommandBuilder custCB = new SqlCommandBuilder(myDataAdapter);

myConn.Open();

DataSet custDS = new DataSet();
myDataAdapter.Fill(custDS, "Customers ");

//在这里修改数据集中的数据


myDataAdapter.Update(custDS, "Customers ");

myConn.Close();

return custDS;
}

62,051

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧