datatable数据插入到SQL, 急!!大家帮忙,解决马上给分

jxqyj1 2008-04-16 10:34:22
我用datatable 读出了excel的数据,想把数据insert 到SQL的员工表中,小弟不懂,大家帮帮忙
...全文
216 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xzoth 2008-04-17
  • 打赏
  • 举报
回复
循环插入效率差,既然数据已经存在DataTable中,
那就使用批量更新插入进数据库吧



SqlDataAdapter dataAdapter = new SqlDataAdapter(SQL, CONNECTION);
string insertSQL = "INSERT INTO [Employee]([name], [age]) VALUES(@name, @age)";

SqlCommand insertCmd = new SqlCommand(insertSQL, CONNECTION);
insertCmd.Parameters.Add(new SqlParameter("@name", SqlDbType.Char, 32, "name"));//name是DataTable中对应的列名
insertCmd.Parameters.Add(new SqlParameter("@age", SqlDbType.Real, 8, "age"));

dataAdapter.InsertCommand = insertCmd;
insertCmd.UpdatedRowSource = UpdateRowSource.None;

dataAdapter.UpdateBatchSize = 0;
dataAdapter.Update(DataTable);



光义 2008-04-17
  • 打赏
  • 举报
回复

没搞过...学习下...
fengniumaxi 2008-04-17
  • 打赏
  • 举报
回复
foreach(DataRow dr in datatable)
{
str sql="insert into employee(,,,,,)values(dr.cells[0],dr.cells[1],,,) where ……";
sqlconnection con=new sqlconnection(connectionstrings);
sqlcommand cmd=new sqlcommand(sql,con);
con.open();
cmd.excutenonquery();
}
我手写的,没测试,具体大概就是这个样子,思想是这样的.
ZGZice 2008-04-17
  • 打赏
  • 举报
回复
如果,结构一致的话,把整个表更新进去 ,会不会更方便
孤剑 2008-04-17
  • 打赏
  • 举报
回复
1 4 楼的兄弟的代码都比较好,通俗易懂,也比较容易理解。

对于性能要求比较高的方法,可以借鉴 3 楼兄弟的思路——批量处理数据。
changjiangzhibin 2008-04-17
  • 打赏
  • 举报
回复

//假设数据库中有需要插入三列,col1,col2,col3,其它字段为可空
//假设均为字符型,其它类型的话要转换一下,Convert.To...
//DataTable中有对应的三列数据,每行的1,3,5列
foreach(DataRow dr in datatable.Rows)
{
string c1 = dr[1].ToString();
string c2 = dr[3].ToString();
string c3 = dr[5].ToString();
InsertDB(c1,c2,c3);
}

private void InsertDB(string c1,string c2,string c3)
{
SqlConnection conn = null;
try
{
string connStr = ConfigurationManager.Configuration["connectionString"].ConnectionString;
conn = new SqlConnection(connStr);
string sql = "insert into Employee(col1,col2,col3)"
sql += "values('"+c1+"','"+c2+"','"+c3+"')";
conn.Open();
SqlCommand cmd = new SqlCommand(sql,conn);
int rows = cmd.ExecuteNonQuery();
}
finaly
{
if(conn != null)
{
conn.Close();
conn.Dispose();
}
}
}

111,092

社区成员

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

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

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