2013-09-07 7 views
1

OleDbCommand을 사용하여 Access 데이터베이스를 업데이트 할 수있는 sqlcommand을 실행합니다. 그러나 OleDbDataAdapterDataTable을 사용하여 데이터베이스를 업데이트하려고 시도하면 이 작동하지 않습니다.OleDbDataAdapter가 액세스 데이터베이스를 업데이트 할 수 없습니다.

using (OleDbConnection conn = new OleDbConnection(connStr)) 
     { 
      conn.Open(); 
      OleDbDataAdapter adapter = new OleDbDataAdapter("select * from confirm", conn); 
      OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter); 
      DataTable table = new DataTable(); 
      adapter.Fill(table); 
      DataRow row = table.NewRow(); 
      row["k"] = "november"; 
      row["v"] = "eleven"; 
      // table.AcceptChanges(); 
      adapter.UpdateCommand = builder.GetUpdateCommand(); 
      adapter.Update(table); 
      // table.AcceptChanges(); 
      return table; 
     } 

코드를 실행하면 데이터베이스가 변경되지 않습니다.

답변

0

DataRow row = table.NewRow();은 테이블 shema를 사용하여 행을 만들고 행을 DataTable에 추가하지 않습니다. 당신은 테이블에 행을 추가해야합니다

table.Rows.Add(row); 

전체 코드

using (OleDbConnection conn = new OleDbConnection(connStr)) 
{ 
    conn.Open(); 
    OleDbDataAdapter adapter = new OleDbDataAdapter("select * from confirm", conn); 
    OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter); 
    DataTable table = new DataTable(); 
    adapter.Fill(table); 
    DataRow row = table.NewRow(); 
    row("k") = "november"; 
    row("v") = "eleven"; 

    //**You missed this** 
    table.Rows.Add(row); 

    adapter.UpdateCommand = builder.GetUpdateCommand(); 
    adapter.Update(table); 
    // table.AcceptChanges(); 
    return table; 
} 
+0

대단히 감사합니다! – NovemberEleven

+0

@ user2757342 당신은 환영합니다 :) – Chris

관련 문제