专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

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

发布时间:2011-06-28 14:06:09 文章来源:www.iduyao.cn 采编人员:星星草
请高手帮我看下我的增加数据的代码
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.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: