如何在 Visual C# 2008 中使用 sql 将数据插入到 dbf 格式数据库中

本文关键字:数据 插入 数据库 格式 dbf sql Visual 2008 | 更新日期: 2023-09-27 18:34:52

如何在Visual c#中使用SQL将数据插入.dbf格式的数据库中?

它与使用 MS Access 时相同吗?

OleDbConnection dbConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:'Users'wz'Desktop'UBS'onetimecapture'onetimecapture'onetimecapture'bin'Debug';Extended Properties=dBase IV;");
try
{
   // Open connection.
   dbConn.Open();
   //string queryCutting = "INSERT INTO cuttingstatus.dbf ([Status]) VALUES(adddate)";
   string queryCutting = "INSERT INTO cuttingstatus.dbf VALUES(adddate)";
   OleDbCommand command_cutting = new OleDbCommand(queryCutting, dbConn);
   command_cutting.Parameters.AddWithValue("adddate", "123");
   command_cutting.ExecuteNonQuery();
   dbConn.Close();
}
catch
{
    MessageBox.Show("Error", "SCADA system", MessageBoxButtons.OK);
}

但它返回一个错误说

Microsoft Jet 数据库引擎找不到对象 "扦插"。
确保对象存在,并且正确拼写其名称和路径名。

该数据库称为cuttingstatus.dbf,它只包含一个列Status

感谢您的帮助=(

如何在 Visual C# 2008 中使用 sql 将数据插入到 dbf 格式数据库中

cuttingstatus.dbf中表的名称是什么?

该语句应如下所示:

INSERT INTO TABLE_NAME
VALUES(adddate) 

作为变量的值queryCutting

当使 OleDbConnection 使用数据库文件时,您希望连接源指向表所在的逻辑路径...不是实际的表。

Connection dbConn = new OleDbConnection(@"Data ource=C:'SomePath'WhereAreAllTables;Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBase IV;");

然后,您的插入查询不会引用.dbf扩展...这是由连接暗示的。 此外,即使它可能是单个列,最好显式显示列和值,例如:

string queryCutting = "INSERT INTO cuttingstatus ( YourColumnName ) VALUES ( @adddate )";

下一个。。。 它真的是DBase IV系统吗? 狐狸专业桌? 剪? 我会确保适当的提供者。 如果数据实际上来自Foxpro,我会去Microsoft下载Visual Foxpro OleDb提供程序。

最后一个想法...是该错误指的是最多 8 个字符的截断表名"切割",这意味着旧的 DOS 8.3 文件命名调用。 不知道这是否也是您遇到的问题。