2016-09-12 3 views
0

세부 정보를 업데이트하고 싶습니다. 데이터 액세스 클래스에 코드가 있습니다. 그러나 ExecuteScalar()을 실행 한 후 catch 블록으로 이동하여 null이라는 예외를 표시합니다.ado.net crud 작업의 오류

프로그램 :

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 매개 변수를 전달하지 않았습니다. 확인해주세요. –

+0

매개 변수에 할당 한 값 중 하나라도 null 일 수 있습니까? – GuidoG

+0

그녀는 업데이트 할 수없는 테이블에 값이 없다면 null이 될 수 있다고 생각하지 않는다 !! @GuidoG – Aravind

답변

0

대신 cmd.ExecuteScalar(); 봅니다

cmd.ExecuteNonQuery(); 

ExecuteNonQuery 특별히 UPDATE, INSERT를 실행하는 데 사용됩니다 사용하거나 문을 삭제합니다.