public static bool UpDataDs(string SQLString, DataTable dtSource, string connectionString) { using (OleDbConnection connection = new OleDbConnection(connectionString)) { OleDbCommand cmd = new OleDbCommand(); cmd.Connection = connection; cmd.CommandText = SQLString; try { DataSet ds = new DataSet(); OleDbDataAdapter adapter = new OleDbDataAdapter(); adapter.SelectCommand = cmd; adapter.Fill(ds, "ds"); ds.Tables[0].PrimaryKey = new DataColumn[] { ds.Tables[0].Columns["ID"] }; OleDbCommandBuilder cmdb = new OleDbCommandBuilder((OleDbDataAdapter)adapter); adapter.InsertCommand = cmdb.GetInsertCommand(); adapter.UpdateCommand = cmdb.GetUpdateCommand(); adapter.DeleteCommand = cmdb.GetDeleteCommand(); if (dtSource.GetChanges() != null) { adapter.Update(dtSource); dtSource.AcceptChanges(); } return true; } catch (DbException ex) { connection.Close(); connection.Dispose(); return false; } } }
运行到这句时 adapter.InsertCommand = cmdb.GetInsertCommand();
提示 INSERT INTO 语句的语法错误。
以前用sql数据库没有问题,改成access就报错了,应该怎么改一下
你得把 insert into 的SQL弄出来
ACCESS 跟 SQL SERVER 是有点差别的
嗯,是得,字段要加上[],
我想access能用这样的方法吗
@丶夏日星:加上是可以的
作为一个开发人员是否应该弃绝access:
1.需要驱动
2.性能不佳(不如sqlite)
3.不支持事务功能等.....
建议使用sqlite.
同时推荐使用Moon.Orm
其中也可以直接使用Sqlite
生成实体代码,引用,就可以直接使用.