2016-05-22 133 views
3

我可以建立與下面的連接字符串連接到Firebird數據庫:火鳥例外:表未知

ConnectionString = "User ID=SYSDBA;Password=masterkey;Database=localhost:C:\\MyDb\\mydb.FDB;DataSource=localhost;Charset=NONE;"; 

但當C#代碼嘗試執行下面的錯誤來查詢:

動態SQL錯誤SQL錯誤代碼= -204 表未知

的代碼,我已經TR ied:

using FirebirdSql.Data.FirebirdClient; 
... 
FbConnection connection = new FbConnection(ConnectionString); 
connection.Open(); 
FbCommand readCommand = new FbCommand("Select Name From Customer;", connection); 
FbDataReader myreader = readCommand.ExecuteReader(); 

確實存在客戶表(我已經檢查過IBExpert - 我可以讀取數據)。我在Google上幾乎找不到任何東西。

Firebird 2.5服務器正在我的電腦上運行。可能是什麼問題呢?

+0

錯誤不完整; 「表未知」 - 錯誤也會顯示未知表的名稱。你能否也顯示錶格的DDL?我懷疑你創建了一個大小寫敏感的表「Customer」,因此與Customer不同(它不區分大小寫,等同於'CUSTOMER')。 –

+0

不幸的是我不知道DDL。 FDB文件作爲數據庫發送給我,但沒有任何更多信息。唯一可以使用的是IBExpert(查看裏面有什麼表格)。我可以通過數據庫本身或某些工具以某種方式找出DDL嗎? –

+0

當然,IBExpert可以逆向設計DDL(與其他工具一樣)。因爲我不使用IBExpert,我不完全知道如何。 –

回答

3

正如你在表名實際上是"Customer"意見確認後,您將需要引用對象名稱在您的查詢,使它們區分大小寫,因此:

new FbCommand("Select \"Name\" From \"Customer\"", connection); 

我假設Name是也是區分大小寫的,因此也引用它。

+0

這解決了這個問題。萬分感謝! –