2013-05-12 28 views
1

我需要使用OLEDB從dbf文件中刪除行。 爲什麼這個查詢不起作用?數據庫驅動程序出錯。C#從dbf中刪除,其中x = 1 AND y = 2

m_query1 = "DELETE FROM tablename WHERE N_U='VS1' AND QMONTH=1"; 

但是這工作得很好:

m_query1 = "DELETE FROM tablename WHERE N_U='VS1'"; 
m_query1 = "DELETE FROM tablename WHERE QMONTH=1"; 

PS。錯誤:來自外部數據庫驅動程序的意外錯誤(10019)

ps2。它適用於一個條件和雙引號。

+0

什麼錯誤????? – 2013-05-12 06:49:14

+0

雙引號是否真的有用? Afaik,它們的使用依賴於數據庫。 '從表名中刪除WHERE N_U ='VS1'和QMONTH = 1' – 2013-05-12 06:53:12

+0

因爲沒有'N_U ='VS1'。順便在SQL中使用單引號。許多方言都能理解,但通常SQL是單引號的。您可以通過http://sqlfiddle.com/來證明問題。 – hol 2013-05-12 06:56:51

回答

1

OLEDB上的SQL語法& dbf文件可能非常具體。

你試過()圍繞AND子句嗎?

我遇到了ODBC驅動程序沒有發生的OLEDB奇怪的問題。

你使用什麼連接字符串?

希望這有助於 乙

+0

'string.Format(「Provider = Microsoft.Jet.OLEDB.4.0; Extended Properties = dBASE IV; Data Source = {0}」,FileHelper.GetDirectoryData());' – CLARK 2013-05-12 12:39:20

+0

我發現了這個問題。它在索引文件中。我使用表達式STR(QMONTH)+ N_U + STR(MIXID)'索引'M_QM'。所有工作正常,當我刪除這個指數。重新添加後有錯誤。 – CLARK 2013-05-12 12:40:08