datatable中的数据插入到数据库的表中

hexin_2 2013-12-20 04:29:04
已经使用npoi将excel中的数据保存到datatable中,同时也已经在数据库中将表建好了,那么我现在需要将datatable中数据插入到数据库的表中,请问如何实现?
...全文
1320 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pes605 2013-12-25
  • 打赏
  • 举报
回复
引用 10 楼 hexin_2 的回复:
[quote=引用 楼主 hexin_2 的回复:] 已经使用npoi将excel中的数据保存到datatable中,同时也已经在数据库中将表建好了,那么我现在需要将datatable中数据插入到数据库的表中,请问如何实现?

             SqlConnection con = new SqlConnection(connectionString);//连接数据库
                con.Open();
             SqlTransaction trans = con.BeginTransaction();//事物对象 
                try
                {
                    SqlCommand com = new SqlCommand();//数据操作对象  
                    com.Connection = con;//指定连接  
                    com.Transaction = trans;//指定事物
                    string sql = "";
                    for (int ii = 1; ii < table.Rows.Count; ii++)
                    {  //对datatable循环    
                        sql = "INSERT INTO [users]([usersID],[usersName],[usersAddress],[usersBirthdate],[usersGender])values ('" + table.Rows[ii]["编号"].ToString() + "','" + table.Rows[ii]["姓名"].ToString() + "','" + table.Rows[ii]["家庭住址"].ToString() + "','" + table.Rows[ii]["生日"].ToString() + "','" + table.Rows[ii]["性别"].ToString() + "')";//某一行的数据
                        com.CommandText = sql;
                    com.ExecuteNonQuery();//执行该行   
                    }
                    trans.Commit();//如果全部执行完毕.提交
                }
                catch
                {
                    trans.Rollback();//如果有异常.回滚.  
                }  
                finally 
                {    con.Close();//关闭连接 
                }
[/quote]正解。
hexin_2 2013-12-25
  • 打赏
  • 举报
回复
引用 楼主 hexin_2 的回复:
已经使用npoi将excel中的数据保存到datatable中,同时也已经在数据库中将表建好了,那么我现在需要将datatable中数据插入到数据库的表中,请问如何实现?

             SqlConnection con = new SqlConnection(connectionString);//连接数据库
                con.Open();
             SqlTransaction trans = con.BeginTransaction();//事物对象 
                try
                {
                    SqlCommand com = new SqlCommand();//数据操作对象  
                    com.Connection = con;//指定连接  
                    com.Transaction = trans;//指定事物
                    string sql = "";
                    for (int ii = 1; ii < table.Rows.Count; ii++)
                    {  //对datatable循环    
                        sql = "INSERT INTO [users]([usersID],[usersName],[usersAddress],[usersBirthdate],[usersGender])values ('" + table.Rows[ii]["编号"].ToString() + "','" + table.Rows[ii]["姓名"].ToString() + "','" + table.Rows[ii]["家庭住址"].ToString() + "','" + table.Rows[ii]["生日"].ToString() + "','" + table.Rows[ii]["性别"].ToString() + "')";//某一行的数据
                        com.CommandText = sql;
                    com.ExecuteNonQuery();//执行该行   
                    }
                    trans.Commit();//如果全部执行完毕.提交
                }
                catch
                {
                    trans.Rollback();//如果有异常.回滚.  
                }  
                finally 
                {    con.Close();//关闭连接 
                }
hexin_2 2013-12-25
  • 打赏
  • 举报
回复
select * from tablename
insus 2013-12-21
  • 打赏
  • 举报
回复
什么版本的数据库? 以Datatable为存储过程的参数,一次性传入: http://www.cnblogs.com/insus/archive/2012/09/22/2698515.html
  • 打赏
  • 举报
回复
引用 楼主 hexin_2 的回复:
已经使用npoi将excel中的数据保存到datatable中,同时也已经在数据库中将表建好了,那么我现在需要将datatable中数据插入到数据库的表中,请问如何实现?
http://www.google.com.hk/search?newwindow=1&safe=strict&hl=zh-CN&q=.net+dataadapter+%E6%95%B0%E6%8D%AE%E5%BA%93&oq=.net+dataadapter+%E6%95%B0%E6%8D%AE%E5%BA%93&gs_l=serp.3...18503.21496.0.21805.3.3.0.0.0.0.0.0..0.0.ernk_timecombined...0...1.1j4.32.serp..3.0.0.im6FOlp5xtg
hexin_2 2013-12-21
  • 打赏
  • 举报
回复
引用 7 楼 insus 的回复:
什么版本的数据库? 以Datatable为存储过程的参数,一次性传入: http://www.cnblogs.com/insus/archive/2012/09/22/2698515.html
注意 datatable中已经有数据了,将datable中的数据批量插入到数据库的表中(不使用存储过程)?
hexin_2 2013-12-20
  • 打赏
  • 举报
回复
引用 3 楼 diaodiaop 的回复:
..... 我就那个意思,就是执行SQL...execute什么什么的那个方法
哥 能否注意语法
hexin_2 2013-12-20
  • 打赏
  • 举报
回复
引用 4 楼 z_dota 的回复:
[quote=引用 2 楼 hexin_2 的回复:] [quote=引用 1 楼 diaodiaop 的回复:] 这个循环下就好了比如

var dt=new DataTable();
for int i=0 i<dt.rows.count i++
{
 string sql="insert into xxoo values('"+dt.rows[i][0].tostring()+"','')"
 exec(sql)
}
这是常规方法.还有一种SqlBulkCopy http://technet.microsoft.com/zh-cn/magazine/09esk03d(VS.100).aspx
你好,请问 exec(sql)sql里面的语法还是 ado.net的语法?[/quote] 这是如何执行语句 ,你自己写的方法[/quote] 这是别人写的,我估计是拼sql语句,然后执行sql。
Dotar 2013-12-20
  • 打赏
  • 举报
回复
引用 2 楼 hexin_2 的回复:
[quote=引用 1 楼 diaodiaop 的回复:] 这个循环下就好了比如

var dt=new DataTable();
for int i=0 i<dt.rows.count i++
{
 string sql="insert into xxoo values('"+dt.rows[i][0].tostring()+"','')"
 exec(sql)
}
这是常规方法.还有一种SqlBulkCopy http://technet.microsoft.com/zh-cn/magazine/09esk03d(VS.100).aspx
你好,请问 exec(sql)sql里面的语法还是 ado.net的语法?[/quote] 这是如何执行语句 ,你自己写的方法
by_封爱 2013-12-20
  • 打赏
  • 举报
回复
..... 我就那个意思,就是执行SQL...execute什么什么的那个方法
hexin_2 2013-12-20
  • 打赏
  • 举报
回复
引用 1 楼 diaodiaop 的回复:
这个循环下就好了比如

var dt=new DataTable();
for int i=0 i<dt.rows.count i++
{
 string sql="insert into xxoo values('"+dt.rows[i][0].tostring()+"','')"
 exec(sql)
}
这是常规方法.还有一种SqlBulkCopy http://technet.microsoft.com/zh-cn/magazine/09esk03d(VS.100).aspx
你好,请问 exec(sql)sql里面的语法还是 ado.net的语法?
by_封爱 2013-12-20
  • 打赏
  • 举报
回复
这个循环下就好了比如

var dt=new DataTable();
for int i=0 i<dt.rows.count i++
{
 string sql="insert into xxoo values('"+dt.rows[i][0].tostring()+"','')"
 exec(sql)
}
这是常规方法.还有一种SqlBulkCopy http://technet.microsoft.com/zh-cn/magazine/09esk03d(VS.100).aspx

62,244

社区成员

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

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

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

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