2014-02-24 2 views
0

나는이 코드를 꽤 솔직하게 사용해야합니다.SqlDataAdapter.Update (DataTable)에서 InvalidOperationException이 발생합니다.

private void btnSave_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      using (SqlConnection sqlConn = new SqlConnection(connString)) 
      { 
       sqlConn.Open(); 

       using (SqlDataAdapter da = new SqlDataAdapter()) 
       { 
        da.SelectCommand = new SqlCommand("SELECT Id, FirstName, LastName, TcReadOnly FROM PersonTable", sqlConn); 

        using (SqlCommandBuilder builder = new SqlCommandBuilder(da)) 
        {       
         DataTable dt = (DataTable)dgvUsers.DataSource; 

         da.UpdateCommand = builder.GetUpdateCommand(); 
         da.Update(dt); 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Der er sket en fejl \r\n \r\n" + ex.ToString()); 
     } 
    } 

그러나 코드를 실행할 때이 오류가 나타납니다. 그게 문제가되지 않습니다, 그래서 정의 폼

enter image description here

라인 (96)은, 이미 내 SelectCommand에 아이디에 차를 돌려주는 것을 확인했다

da.Update(dt); 

서비스를 제공합니다.

답변

1

물론 질문을 한 후 몇 초 후에 대답을 찾았습니다.

SelectCommand에 내가 실제로 DataTable을 내 DataTable의에서 열이 나는를 업데이트하기 위해 노력하고있어 사람과 같은 이름이없는 것을 의미하는이

da.SelectCommand = new SqlCommand("SELECT Id, FirstName AS Fornavn, LastName AS Efternavn, " + 
         "TcReadOnly AS 'Read only' FROM PersonTable", sqlConn); 

과 같은 채우기 위해 사용하고 있습니다 데이터베이스 :-) Brainfart ....

관련 문제