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

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

2013-01-06 
请高手帮我看下我的增加数据的代码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.

正解

热点排行