日期:2014-05-18  浏览次数:21051 次

执行sqlcom.Parameters.Add("@Depot",SqlDbType.VarChar,30).Value = P_Depot;报错!急!
public int Sku_loc(string P_Loc,int P_Storer, string P_Sku, string P_Depot, int P_Qty)
  {
   
  SqlCommand sqlcom = new SqlCommand("proc_Sku_loc", GetCon());
  sqlcom.CommandType = CommandType.StoredProcedure;
  sqlcom.Parameters.Add("@Loc",SqlDbType.VarChar,20).Value= P_Loc;
  sqlcom.Parameters.Add("@Storer", SqlDbType.Int, 32).Value =P_Storer;
  sqlcom.Parameters.Add("@Sku",SqlDbType.VarChar,20).Value = P_Sku;
  sqlcom.Parameters.Add("@Depot",SqlDbType.VarChar,30).Value = P_Depot;
  sqlcom.Parameters.Add("@Qty", SqlDbType.Int, 32).Value = P_Qty;
  SqlParameter returnValue = sqlcom.Parameters.Add("returnValue", SqlDbType.Int, 4);
  returnValue.Direction = ParameterDirection.ReturnValue;
  G_Con.Open();
  try
  {
  sqlcom.ExecuteNonQuery();
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message);
  }
  finally
  {
  sqlcom.Dispose();
  G_Con.Close();
  G_Con.Dispose();
  }
  int P_int_returnValue = (int)returnValue.Value;
  return P_int_returnValue;
  }
  传参进来赋值以后~左边的 sqlcom.Parameters.Add("@Storer", SqlDbType.Int, 32).Value, sqlcom.Parameters.Add("@Depot",SqlDbType.VarChar,30).Value,..值仍为空。

------解决方案--------------------
单步调试下,看看参数是否正确。
------解决方案--------------------
错误信息是什么
------解决方案--------------------
sqlcom.Parameters.Add("@Depot",SqlDbType.VarChar,30).Value = P_Depot;
参赛类型和数据库里面的一样吗?如:SqlDbType.VarChar
参赛大小和数据库里面的一样吗?如:30
以上2个都不一样的话,报错是必须的。
即使符合以上2点,那也需要看看你的30长度是不是够装P_Depot的长度