我们试图将数据插入到Clipper数据库文件(带有NTX索引文件的DBF文件)中。使用OLE将日期字段插入到Clipper数据库中
由于各种原因,我们无法更改数据库格式。
目前,我们正在看到两个问题:
与我们现有的代码,我们无法更新或利用NTX索引文件(我相信)。我们希望能够做到这一点。你知道可以做到这一点的OLE或ODBC驱动程序吗?
只要我们不包含日期,我们就可以在裁剪数据库文件(DBF)中插入一行。如果我们以任何格式包含日期,我们会收到错误。
一些示例代码:
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=dBASE IV");
string sql = "insert into TABLE (E, J, DATE, STARTTIME, ENDTIME) values ('1', '2', '2010-01-13' ,'08:12:12', '18:12:12')";
OleDbCommand myCommand = new OleDbCommand(sql);
myCommand.Connection = con;
con.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
,异常是一样的东西:
01/15/2010 12:50:31 {ERROR} ASITranslator.GUI.ASITranslatorGUI.insertSCH - Error in: Syntax error in INSERT INTO statement.-- StackTrace: at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
接下来,没有日期栏,它工作正常。
是否有更好的提供者用于Clipper文件(该提供者适用于其他DBF文件)。
任何想法?
这是对user48208的答案作出的调整。 – Vincent 2010-06-05 00:59:41