2016-09-12 3 views
0

詳細を更新したいと思います。私はデータアクセスクラスにコードを持っています。しかし、ExecuteScalar()を実行した後、catchブロックに行き、nullという例外を表示します。ado.net crud operationsのエラー

プログラム:

public bool UpdateData(Customer objcust) // passing model class object because it contains all customer properties. 
{ 
    SqlConnection con = null; 
    // string result = ""; 
    //int rows = 0; 
    try 
    { 
     string connectionString = @"server=(local)\SQLExpress;database=CustDemo;integrated Security=SSPI;"; 
     con = new SqlConnection(connectionString); 
     SqlCommand cmd = new SqlCommand("UPDATE Customer SET Name = @Name , Address = @Address, Gender [email protected] , [email protected] WHERE Customer.CustomerID = @CustomerID",con); 
     cmd.CommandType = CommandType.Text; 
     cmd.Parameters.AddWithValue("@Name", objcust.Name); 
     cmd.Parameters.AddWithValue("@Gender", objcust.Gender); 
     cmd.Parameters.AddWithValue("@Address", objcust.Address); 
     cmd.Parameters.AddWithValue("@City", objcust.City); 

     con.Open(); 
     cmd.ExecuteScalar(); 

     return true; 
    } 
    catch(Exception ex) 
    { 
     return false; 
    } 
} 
+5

お客様IDパラメータを渡しませんでした。確認してください、それはnullです。 –

+0

パラメータに割り当てる値のいずれかがnullでもかまいませんか? – GuidoG

+0

彼女が更新できないテーブルに値が存在しないと、それはnullになる可能性があると私は思っていません!! @GuidoG – Aravind

答えて

0

代わりcmd.ExecuteScalar();てみの

cmd.ExecuteNonQuery(); 

ExecuteNonQueryを使用するためには、具体的には、UPDATE、INSERT、またはDELETE文を実行に使用されます。

関連する問題