DataSet ds = new DataSet();
SqlCommand insertcommand = new SqlCommand("INSERT INTO [SaleDetails]([store_code],[goods_code],[goods_name],[spec],[qty],[tran_date],[amount],[re])" +
 "VALUES(@store_code, @goods_code,@goods_name,@spec,convert(int,@qty,100),convert(datetime,@tran_date,100),convert(Decimal,@amount,100),@re)", new SqlConnection(connectionString));         insertcommand.Parameters.Add("@store_code", SqlDbType.VarChar);
         insertcommand.Parameters.Add("@goods_code", SqlDbType.VarChar);
         insertcommand.Parameters.Add("@goods_name", SqlDbType.VarChar);
         insertcommand.Parameters.Add("@spec", SqlDbType.VarChar);
         insertcommand.Parameters.Add("@qty", SqlDbType.Int, 10, "salqty");
         insertcommand.Parameters.Add("@tran_date", SqlDbType.DateTime, 255, "trddtm");
         insertcommand.Parameters.Add("@amount", SqlDbType.Decimal, 18, "salamt");
         insertcommand.Parameters.Add("@re", SqlDbType.VarChar, 200, "");
sqldataadapter.InsertCommand = insertcommand;sqldataadapter.Update(ds, "onrcd");  里面dataset的"salqty"字段的内容为字符串,数据库对应的值为Int,在update里报错,string不能转为int,该如何处理呢?请教

解决方案 »

  1.   

    string不能转为int
    不都是这么转换的么   int.Parse(string); 么?
      

  2.   

    直接强制转换成int类型传入啊,不过要确定你的那个字符串可以转化成int
      

  3.   

    建议int.tryParse,如果无法转换有个返回值让你判断
      

  4.   


    看着就不对啊。。 insertcommand.Parameters.Add("@qty", SqlDbType.Int, 10, "salqty");类型明显匹配不上。。
      

  5.   


    insertcommand.Parameters.Add("@qty", SqlDbType.Int, 10, "salqty");
    如果qty该字段是存字符串的,,那把SqlDbType.Int改了,SqlDbType.VarChar如果qty该字段是存整形的,,那"salqty"的值有问题。
      

  6.   

    你可以在表“onrcd”里面新增一列:
    ds.Tables["onrcd"].Columns.Add("intsalqty", typeof(int), "salqty");然后将
    insertcommand.Parameters.Add("@qty", SqlDbType.Int, 10, "salqty");
    改为
    insertcommand.Parameters.Add("@qty", SqlDbType.Int, 10, "intsalqty");