2013-07-26 206 views
1

我想更新我的數據從webservice到我的數據庫。但是,一旦我單擊Web服務頁面中的調用,並運行以下命令:「command1.Connection.Open();」我將收到此錯誤消息:對象引用未設置爲對象的實例。未將對象引用設置爲對象的實例。 asp.net

這是我的代碼:

[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 [email protected], [email protected],[email protected],[email protected] 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(); 
      } 
     } 
+2

更改此command1.Connection.Open(); conn.Open(); – Raghubar

+0

發生此錯誤:System.Data.SqlClient.SqlException:必須聲明標量變量" @StallNo "。 –

+0

您已添加該參數。添加此命令1.Parameters.AddWithValue(「@ StallNo」,「」); – Raghubar

回答

7

傳遞你SqlConnection作爲參數傳遞給SqlCommand構造。

SqlCommand command1 = new SqlCommand(query, conn); 

而且改變你的查詢被完全參數化(和你錯過@StallNo參數):

"UPDATE Student set [email protected], [email protected],[email protected],[email protected] WHERE NRIC = @NRIC" 

command1.Parameters.AddWithValue("@Name", Name); 
command1.Parameters.AddWithValue("@Class", CLass); 
command1.Parameters.AddWithValue("@NRIC", NRIC); 
command1.Parameters.AddWithValue("@AmountSpent", AmountSpent); 
command1.Parameters.AddWithValue("@StallNo", ""); //missing parameter 
+0

我得到這個錯誤:System.Data.SqlClient.SqlException:必須聲明標量變量" @StallNo "。 –

+1

我指出,在我的答案'(和你失蹤@StallNo參數):'必須添加此'command1.Parameters.AddWithValue(「@ StallNo」,「」); //缺少具有適當值的參數。 – gzaxx

+0

我明白了,謝謝! –

0

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

之前執行的ExecuteNonQuery()

0

只需添加這行

conn.open(); 

,而不是

command1.Connection.Open(); 
相關問題