我们正在尝试将数据插入到裁剪器数据库文件(带有 NTX 索引文件的 DBF 文件)中。
由于各种原因,我们无法更改数据库格式。
我们目前看到两个问题:
使用我们现有的代码,我们无法更新或利用 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()
同样,没有 DATE 列,它工作正常。
是否有更好的提供程序用于 Clipper 文件(该提供程序适用于其他 DBF 文件)。
有任何想法吗?