微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET 中的更新导致异常:“必须声明标量变量”

如何解决ASP.NET 中的更新导致异常:“必须声明标量变量”

我正在尝试更新我的 Student 表中的某个记录,但是同样的异常不断弹出:

System.Data.sqlClient.sqlException: 必须声明标量变量“@sid”

请提出任何建议,因为我似乎找不到我的代码有任何错误

这是我的更新查询代码

if (conn.State == System.Data.ConnectionState.Closed)
{
    conn.open();

    String sid = txtSearch.Text;

    sqlCommand cmd2 = new sqlCommand("UPDATE [Student] SET [Password] = @pass,[StudentName] = @studName,[Email] = @email,[PhoneNumber] = @number,[Faculty] = @faculty,[Course] = @course WHERE [StudentID] = @sid",conn); 

    cmd2.Parameters.AddWithValue("@pass",txtPassword.Text);
    cmd2.Parameters.AddWithValue("@studName",txtStudentName.Text);
    cmd2.Parameters.AddWithValue("@email",txtEmail.Text);
    cmd2.Parameters.AddWithValue("@number",txtPhoneNum.Text);
    cmd2.Parameters.AddWithValue("@faculty",ddlFaculty.SelectedValue);
    cmd2.Parameters.AddWithValue("@course",ddlCourse.SelectedValue);

    cmd2.ExecuteNonQuery(); 

    Response.Write("<script>alert('Record updated successfully!')</script>");
    conn.Close();

    Clear();
}

解决方法

你错过了@sid param

    if (conn.State == System.Data.ConnectionState.Closed)
    {
        conn.Open();

        String sid = txtSearch.Text;
        SqlCommand cmd2 = new SqlCommand("UPDATE [Student] SET [Password]=@pass,[StudentName]=@studName,[Email]=@email,[PhoneNumber]=@number,[Faculty]=@faculty,[Course]=@course 
        WHERE [StudentID]=@sid",conn); 
        cmd2.Parameters.AddWithValue("@pass",txtPassword.Text);
        cmd2.Parameters.AddWithValue("@studName",txtStudentName.Text);
        cmd2.Parameters.AddWithValue("@email",txtEmail.Text);
        cmd2.Parameters.AddWithValue("@number",txtPhoneNum.Text);
        cmd2.Parameters.AddWithValue("@faculty",ddlFaculty.SelectedValue);
        cmd2.Parameters.AddWithValue("@course",ddlCourse.SelectedValue);
        cmd2.Parameters.AddWithValue("@isid",sid);     // <------
        cmd2.ExecuteNonQuery(); 

        Response.Write("<script>alert('Record updated successfully!')</script>");
        conn.Close();

        Clear();
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?