对象引用未设置为对象的实例。asp.net

对象引用未设置为对象的实例。asp.net,asp.net,sql,Asp.net,Sql,我正在尝试将数据从webservice更新到数据库。但是,一旦我在web服务页面中单击invoke并运行此命令:“command1.Connection.Open();”我将收到以下错误消息:对象引用未设置为对象的实例 这是我的代码: [WebMethod] public void UpdateParticulars(string Name, string CLass, string NRIC, float AmountSpent) {

我正在尝试将数据从webservice更新到数据库。但是,一旦我在web服务页面中单击invoke并运行此命令:“command1.Connection.Open();”我将收到以下错误消息:对象引用未设置为对象的实例

这是我的代码:

  [WebMethod]
        public void UpdateParticulars(string Name, string CLass, string NRIC, float AmountSpent)
        {
            using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ncpConnectionString2"].ConnectionString))
            {
                SqlCommand command1 = new SqlCommand("UPDATE Student set Name=@Name, Class=@CLass,StallNo=@StallNo,AmountSpent=@AmountSpent WHERE NRIC = '" + NRIC + "'");

                command1.Parameters.AddWithValue("@Name", Name);
                command1.Parameters.AddWithValue("@Class", CLass);
                command1.Parameters.AddWithValue("@NRIC", NRIC);
                command1.Parameters.AddWithValue("@AmountSpent", AmountSpent);

                command1.Connection.Open();
                command1.ExecuteNonQuery();
            }
        }

SqlConnection
作为参数传递给
SqlCommand
构造函数

SqlCommand command1 = new SqlCommand(query, conn);
同时将查询更改为完全参数化(并且缺少@StallNo参数):


使用command1.Connection=conn; conn.Open()

在执行ExecuteNonQuery()之前,只需添加这一行

conn.open();
而不是

command1.Connection.Open();

更改此命令1.Connection.Open();连接到conn.Open();出现此错误:System.Data.SqlClient.SqlException:必须声明标量变量“@StallNo”。您已添加该参数。添加此命令1.Parameters.AddWithValue(“@StallNo”,即“”);我得到了这个错误:System.Data.SqlClient.SqlException:必须声明标量变量“@StallNo”。我在回答中指出:必须添加这个
command1.Parameters.AddWithValue(@StallNo“,”)//缺少具有正确值的参数
command1.Connection.Open();