간단한 ms 액세스 데이터베이스를 업데이트하려고합니다. 검색을 한 후 Microsoft Support - Syntax Error이라는 특정 표에 예외가 발생했습니다. 열 이름 중 하나가 예약어를 사용한다는 의미입니다. 모든 테이블은 "GUID"가있는 테이블을 제외한 열 이름, 예약어 중 하나로 업데이트되므로이 경우가 될 수 있습니다. 또한이 페이지는 OleDbAdapter와 DataSet을 사용해야한다고 말하면서 문제를 해결할 수 있습니다. 불행히도 열 이름을 변경할 수 없습니다. 그것은 내 통제를 넘어서서, 나에게 주어진 것을 가지고 일해야한다.OleDbDataAdapter 및 DataSet을 사용하여 Access.mdb 업데이트
나는 데이터베이스에서 많은 일을 할 필요가 없었으며 인터넷에서 예제를 통해 배웠던 모든 것을 배웠다. 그렇다면 OleDbAdapter와 dataSet을 사용하여 데이터베이스를 업데이트하는 올바른 방법은 무엇입니까?
DataTable 또는 OleDbCommandBuilder를 사용해야한다고 생각하지 않습니다. 솔루션에 매개 변수와 관련이 있다고 생각합니다. 그러나 나의 googleing 기술은 약하다.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " +
Data Souce=" + source);
conn.Open();
OleDbAdapter adapter = new OleDbDataAdapter("SELECT * From " + table, conn);
OleDbCommandBuiler cmdBuiler = new OleDbCommandBuilder(adapter);
DataSet = new DatSet();
adapter.InsertCommand = cmdBuilder.GetInertCommand(true); // Is this necessary?
adapter.Fill(dataSet, table);
DataTable dataTable = dataSet.Tables[table]; // Do I need a DataTable?
DataRow row = dataTable.
row [ attribute ] = field; // Do this for all attributes/fields. I think this is wrong.
dataTable.rows.Add(row);
adapter.Update(dataTable); //<--"Syntax error in INSERT INTO statement." Exception
데이터 세트를 계속 사용해야한다는 점을 제외하면이 방법이 성공했습니다. 그렇지 않으면'adapter.Fill'에서 예외를 던질 것입니다. 예외는'System.ArgumentException''{ "Object는 ADODB.RecordSet 또는 ADODB.Record가 아닙니다. \ r \ n 매개 변수 이름 : adodb"}'입니다. Matt 감사합니다. – SaulBack
고마워, 내 첫 번째 답변 그래서, 나는 당신을 위해 일한 것을 기쁘게 생각합니다! – Matt
'OleDbCommandBuilder'를 사용한다면'cmdBuilder.QuotePrefix = "[";'and'cmdBuilder.QuoteSuffix = "]";'를 사용할 수 있습니다. –