簡體   English   中英

如何在Visual C#2008中使用sql將數據插入dbf格式的數據庫中?

[英]How do I insert data into a dbf format database using sql in Visual C# 2008?

如何在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數據庫引擎找不到對象“ cuttings”。
確保對象存在,並且正確拼寫了它的名稱和路徑名。

該數據庫名為cuttingstatus.dbf ,它僅由一個列Status

感謝您的幫助=)

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

該語句應類似於:

INSERT INTO TABLE_NAME
VALUES(adddate) 

作為變量queryCutting的值。

使OleDbConnection使用數據庫文件時,您希望連接源指向該表不是邏輯表的邏輯PATH。

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表? 快船隊? 我會確保適當的提供者。 如果數據實際上來自Foxpro,我將轉到Microsoft並下載Visual Foxpro OleDb提供程序。

最后一個想法...是該錯誤所指的是被截斷的表名,該表名最多包含8個字符的“切口”,這意味着舊的DOS 8.3文件命名約定。 不知道這是否也是您遇到的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM