OleDbCommandBuilder 的奇怪问题,一碰到ACCESS数据库表中的日期型字段就出错!
我想用 DataAdapter.Update 更新表中的数据,代码是这样的:
string strSQL = "select * from Register order by ID";
OleDbConnection myConnection = new OleDbConnection(GetConnectionString());
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strSQL,myConnection);
OleDbCommandBuilder myCommandBuilder = new
OleDbCommandBuilder(myDataAdapter);
try
{
myDataAdapter.Update(myDataSet, "Register");
}
catch(Exception ex)
{
throw ex;
}
finally
{
myConnection.Close();
}
DataSet 是从 DataGrid 里来的;
SQL 语名是 OleDbCommandBuilder 自动生成的;
我的表里有一个日期型字段,不修改这个字段时没有任何问题,程序工作正常;
一旦修改了这个字段的值,出错,提示 "INSERT INTO" 语句(新增一条记录时,插入
记录涉及到这个日期型字段)或者 "UPDATE" 语句(修改 Update 字段时)出错;
我用 SQL Server 试了一下没有出错,可以确定是 Access 数据库语法规则不一样的问
题了!
怎么样把 CommandBuilder 生成的语句,怎么样改成 "insert into Register
(datetime) values (#" + DateTime + "#)" 这种形式呢?