2011-11-13 66 views
0

我正在使用sqlite精簡版,我使用linqdpad做了一些測試,工作正常。但是當我轉到C#代碼時,它不起作用。我試圖從數據庫中獲取領域與下面的代碼:簡單的SQLite查詢不起作用

using System; 
using System.Data.SqlServerCe; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var conStr = @"data source=C:\path\db.sdf;password=..."; 
      var con = new SqlCeConnection(conStr); 
      con.Open(); 

      var cmd = new SqlCeCommand("select * from quest", con); 
      SqlCeDataReader result = cmd.ExecuteReader(); 
      Console.Write(result.Read()); 
      Console.ReadLine(); 
      con.Close(); 
     } 
    } 
} 

result.Read()回報false。彷彿沒有田野。我如何解決它?

使用linqpad我可以看到:

enter image description here

查詢:

select * from quest; 

UPDATE 當數據庫(。自衛隊)使用密碼的問題發生。

+0

希望您正在關閉此代碼下的連接。考慮爲此使用'using'。你可以請張貼你用來給你發佈結果的linqpad查詢。 –

+0

@AdamWenger:添加完整的代碼。和linqpad查詢/輸出。 –

回答

0

在查詢結尾處檢查分號,可以刪除它,查詢執行權限。另一方面,一切事物都是正確的。

0

它看起來好了,我 - 也許這:

var result 

將其更改爲SqlCeDataReader。它是我能看到的唯一的'錯誤'。

另外,不要忘記在完成後關閉連接。

+0

我認爲問題不在這裏。基本上,編譯器會將'var'轉換爲編譯時的實際類型。是的,我用我的「真實」代碼關閉了連接。 –