【发布时间】:2011-08-18 00:12:12
【问题描述】:
我正在尝试更新一个简单的 ms 访问数据库。我在某些表上遇到异常,在搜索后发现Microsoft Support - Syntax Error。我相信这意味着其中一个列名使用了保留字。情况似乎是这样,因为除了将“GUID”作为列名之一(保留字)的表之外,所有表都会更新。该页面还指出我应该使用 OleDbAdapter 和 DataSet,这应该可以解决问题。不幸的是,我无法更改列的名称。这超出了我的控制范围,所以我必须使用给我的东西。
我不需要做太多的数据库工作,我所知道的一切都是从互联网上的例子中学到的(可能是坏的)。那么使用 OleDbAdapter 和 dataSet 更新数据库的正确方法是什么?
我认为我不应该使用 DataTable 或 OleDbCommandBuilder,而且我认为解决方案与参数有关。但是我的谷歌搜索能力很弱。
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
【问题讨论】: