关于用dt 批量插入数据

sharpdevelop110 2010-11-10 04:21:53

public static bool insert_dt(DataTable dt)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
try
{
DataTable datatale = dt;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "Insert Into Temp_Line_yd(tno,xlname,bh,crs,xhs,lxr,crjsj,xhjsj,S_userID,lname) values(@tno,@xlname,@bh,@crs,@xhs,@lxr,@crjsj,@xhjsj,@S_userID,@lname)";
cmd.CommandType = CommandType.Text;
SqlDataAdapter ada = new SqlDataAdapter(cmd);
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder();
ada.InsertCommand = myCommandBuilder.GetInsertCommand();

foreach (DataRow dr in dt.Rows)
{
if (dr.RowState != DataRowState.Added)
{
dr.SetAdded();
}
}
conn.Open();
ada.Update(dt);
}
catch { }
finally { conn.Close(); }
}
return true;
}



上面的写法都是自己找资料乱写的,结果不对,不能成功插入到数据库。

希望有这方面经验的朋友给点指点。
...全文
102 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharpdevelop110 2010-11-12
  • 打赏
  • 举报
回复
结贴,发了一个重复帖子。。
woszsj 2010-11-11
  • 打赏
  • 举报
回复
DataTable datatale = dt;
这样也行?!!
woszsj 2010-11-11
  • 打赏
  • 举报
回复
不知道你那代码哪找的,没效率不说还各种错误。如果会插入数据到datatable就按下面方法来吧,当前最高效的批量插入方法之一。
DataTable dt = new DataTable();
//把要插入的数据放到dt中
string connectionString = @"Data Source=(local);" + "Integrated Security=SSPI;database=scada";
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction);
sqlbulkcopy.DestinationTableName = "Temp_Line_yd";
sqlbulkcopy.WriteToServer(dt);
huwen7565833 2010-11-10
  • 打赏
  • 举报
回复
a13623127108 2010-11-10
  • 打赏
  • 举报
回复
用事物。。
dacan66 2010-11-10
  • 打赏
  • 举报
回复
看了下,感觉没错啊。
Return门徒 2010-11-10
  • 打赏
  • 举报
回复
批量插入,如果你的TABLE是一个表的东东,可以如下
[code=SQL]
insert into t1(t1a) values select t2a from t2

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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