必须在sql update上声明标量变量 [英] Must declare the scalar variable on sql update

查看:128
本文介绍了必须在sql update上声明标量变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我的项目有这个错误:必须声明标量变量@SerialNo。是什么原因?

谢谢



Hi everyone, my project has this error: Must declare the scalar variable "@SerialNo". What's cause?
thanks

private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Tickets.mdf;Integrated Security=True;User Instance=True";

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;

            SqlDataAdapter da = new SqlDataAdapter();
            da.UpdateCommand = new SqlCommand(@"Update [Ticket] Set No = @No, Date = @Date, [From] = @From, [To] = @To, IssueDate = @IssueDate, FlightNo = @FlightNo, ClassBasis = @ClassBasis, Issuer = @Issuer, Code = @Code, Form = @Form, SerialNo = @SerialNo Where No = @No", con);


            da.UpdateCommand.Parameters.Add("@No", SqlDbType.Int).Value = (txtNo.Text).ToString();
            da.UpdateCommand.Parameters.Add("@Date", SqlDbType.NVarChar).Value = txtDate.Text;
            da.UpdateCommand.Parameters.Add("@From", SqlDbType.NVarChar).Value = txtFrom.Text;
            da.UpdateCommand.Parameters.Add("@To", SqlDbType.NVarChar).Value = txtTo.Text;
            da.UpdateCommand.Parameters.Add("@IssueDate", SqlDbType.NVarChar).Value = txtIssueDate.Text;
            da.UpdateCommand.Parameters.Add("@FlightNo", SqlDbType.NVarChar).Value = txtFlightNo.Text;
            da.UpdateCommand.Parameters.Add("@ClassBasis", SqlDbType.NVarChar).Value = txtClassBasis.Text;
            da.UpdateCommand.Parameters.Add("@Issuer", SqlDbType.NVarChar).Value = txtIssuer.Text;
            da.UpdateCommand.Parameters.Add("@Code", SqlDbType.NVarChar).Value = txtCode.Text;
            da.UpdateCommand.Parameters.Add("@Form", SqlDbType.NVarChar).Value = txtForm.Text;
            da.UpdateCommand.Parameters.Add("@SerilNo", SqlDbType.NVarChar).Value = txtSerial.Text;

            con.Open();
            da.UpdateCommand.ExecuteNonQuery();
            con.Close();

            this.ShowData();

推荐答案

我认为原因是这条线

I think the cause is this line
da.UpdateCommand.Parameters.Add("@SerilNo", SqlDbType.NVarChar).Value = txtSerial.Text;



这应该是 @SerialNo 而不是 @SerilNo


查看以下内容:

http://blogs.msdn.com/b/spike/archive/2010/03/03 /must-declare-the-scalar-variable.aspx [ ^ ]

这可能对你有所帮助。
have a look at the following:
http://blogs.msdn.com/b/spike/archive/2010/03/03/must-declare-the-scalar-variable.aspx[^]
this might help you.


错误是 @SerialNo 而不是 @SerilNo



hiii guys我们可以为此编写存储过程可以避免这种类型的错误...............





我们可以使用存储过程还有



mistake is @SerialNo instead of @SerilNo

hiii guys we can write stored procedure for this we can avoid this type of error...............


we can use stored procedures also

Create procedure updateproc(@No int,@Date varchar(50)  ,@From varchar(50)  ,@IssueDate varchar(50)  ,@FlightNo varchar(50)   ,@ClassBasis  varchar(50) ,@Issuer varchar(50) ,@SerialNo  varchar(50))
As 
Begin
Update [Ticket] Set No = @No, Date = @Date, [From] = @From, [To] = @To, IssueDate = @IssueDate, FlightNo = @FlightNo, ClassBasis = @ClassBasis, Issuer = @Issuer, Code = @Code, Form = @Form, SerialNo = @SerialNo Where No = @No"
end


这篇关于必须在sql update上声明标量变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆