首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请高手帮小弟我看下小弟我的增加数据的代码

2012-03-17 
请高手帮我看下我的增加数据的代码SqlConnection sqlCon new SqlConnection(strCon)try{sqlCon.Open()

请高手帮我看下我的增加数据的代码
SqlConnection sqlCon = new SqlConnection(strCon);
  try
  {
  sqlCon.Open();
  SqlCommand sqlCmd = sqlCon.CreateCommand();
  sqlCmd.Connection = sqlCon;
  sqlCmd.CommandText="insert into InOutStore values(@OperateTime,@ProductId,@Quantity,@[Type])";
  sqlCmd.Parameters.Add(new SqlParameter("@OperateTime",this.OperateTime.Text.Trim()));
  sqlCmd.Parameters.Add(new SqlParameter("@ProductId", this.ProductName.SelectedValue.ToString()));
  sqlCmd.Parameters.Add(new SqlParameter("@Quantity",this.Quantity.Text.Trim()));

  //从这里开始就出现问题了。 它说:'int'附件有语法错误.必须声明标量变量"@"
  int number;  
  if (type.SelectedItem.ToString().Equals("入库"))
  {
  number=1;
  sqlCmd.Parameters.Add(new SqlParameter("@[Type]",number));
  }
  if (type.SelectedItem.ToString().Equals("出库"))
  {
  number = -1;
  sqlCmd.Parameters.Add(new SqlParameter("@[Type]",number));
  }
  sqlCmd.ExecuteNonQuery();
  MessageBox.Show("添加库房产品成功!");
  }
  catch (SqlException se)
  {
  MessageBox.Show(se.Message);
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message);
  }
  finally
  {
  sqlCon.Close();
  }

请哪位高手指点一下。。。。。 我觉得思路应该没有错啊。当选到入库的时候可以用1来代替,出库的时候用-1来代替

[解决办法]
1.
(@OperateTime,@ProductId,@Quantity,@[Type]是四个参数,你只写了
sqlCmd.Parameters.Add(new SqlParameter("@OperateTime",this.OperateTime.Text.Trim())); 
sqlCmd.Parameters.Add(new SqlParameter("@ProductId", this.ProductName.SelectedValue.ToString())); 
sqlCmd.Parameters.Add(new SqlParameter("@Quantity",this.Quantity.Text.Trim())); 

2.

表中是否有不能为null的字段没有传值.


[解决办法]

探讨
楼主,在数据库中这样声明变量@[Type]是不被识别的。
去掉[]即可,直接使用@Type.

热点排行