当前位置:编程学习 > C#/ASP.NET >>

怎么将datatable中的数据批量存入数据库

 public static void Add_Order(DataTable tbl)
        { 
        
           SqlConnection con=GetConnect();
           SqlCommand com = new SqlCommand("insert into [Order](Pro_Name,Pro_Num,Customer_Name,Data_Out) values(@proname,@num,@cname,@dataout) ", con);
          
           com.Parameters.Add("proname", SqlDbType.VarChar,50,"Pro_Name");
           com.Parameters.Add("num", SqlDbType.Int,16,"Pro_Num");
           com.Parameters.Add("cname", SqlDbType.VarChar,50,"Customer");
           com.Parameters.Add("dataout", SqlDbType.DateTime,10,"Data_Out");
           SqlDataAdapter adapter = new SqlDataAdapter();
           adapter.InsertCommand = com;
           con.Open();
          
           adapter.Update(tbl);
           con.Close();
        
        } --------------------编程问答-------------------- 会抛出异常,“参数化查询 '(@proname varchar(50),@num int,@cname varchar(50),@dataout datet' 需要参数 '@cname',但未提供该参数。”
这是怎么回事?该怎么改啊? --------------------编程问答--------------------  com.Parameters.Add("@proname", SqlDbType.VarChar,50,"Pro_Name");
  com.Parameters.Add("@num", SqlDbType.Int,16,"Pro_Num");
  com.Parameters.Add("@cname", SqlDbType.VarChar,50,"Customer");
  com.Parameters.Add("@dataout", SqlDbType.DateTime,10,"Data_Out");
  SqlDataAdapter adapter = new SqlDataAdapter(); --------------------编程问答-------------------- 楼上正解,批量的话,循环即可 --------------------编程问答--------------------
引用 1 楼 fuhao555 的回复:
会抛出异常,“参数化查询 '(@proname varchar(50),@num int,@cname varchar(50),@dataout datet' 需要参数 '@cname',但未提供该参数。”
这是怎么回事?该怎么改啊?

数据库字段Customer_Name是不是为not null --------------------编程问答-------------------- 数据库字段Customer_Name    是为not null --------------------编程问答--------------------
引用 4 楼 chinajiyong 的回复:
引用 1 楼 fuhao555 的回复:

会抛出异常,“参数化查询 '(@proname varchar(50),@num int,@cname varchar(50),@dataout datet' 需要参数 '@cname',但未提供该参数。”
这是怎么回事?该怎么改啊?

数据库字段Customer_Name是不是为not null


是not null --------------------编程问答--------------------
引用 2 楼 chinajiyong 的回复:
 com.Parameters.Add("@proname", SqlDbType.VarChar,50,"Pro_Name");
  com.Parameters.Add("@num", SqlDbType.Int,16,"Pro_Num");
  com.Parameters.Add("@cname", SqlDbType.VarChar,50,"Customer");
  com.P……

都改了,依然是那个异常 --------------------编程问答--------------------
引用 6 楼 fuhao555 的回复:
引用 4 楼 chinajiyong 的回复:

引用 1 楼 fuhao555 的回复:

会抛出异常,“参数化查询 '(@proname varchar(50),@num int,@cname varchar(50),@dataout datet' 需要参数 '@cname',但未提供该参数。”
这是怎么回事?该怎么改啊?

数据库字段Customer_Name是不是为not ……

@cname传的时候不要传NULL进去
--------------------编程问答-------------------- --------------------编程问答-------------------- 文不对题 --------------------编程问答--------------------  com.Parameters.Add("@cname", SqlDbType.VarChar,50,"Customer_Name"); --------------------编程问答--------------------
引用 11 楼 rekym 的回复:
 com.Parameters.Add("@cname", SqlDbType.VarChar,50,"Customer_Name");

改过来了,没有错误,但是数据库中入不了数据 --------------------编程问答--------------------
引用 12 楼 fuhao555 的回复:
引用 11 楼 rekym 的回复:

com.Parameters.Add("@cname", SqlDbType.VarChar,50,"Customer_Name");

改过来了,没有错误,但是数据库中入不了数据

少了
cmd.ExcuteNoQuery(); --------------------编程问答-------------------- 是不是没有执行 cmd.ExecuteNonQuery(); --------------------编程问答-------------------- cmd.ExecuteNonQuery();
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,