2009-10-24 46 views
0

C#WinForms .Net 3.5到移動6.1上的SQL CE 3.5設備如何從桌面應用程序連接到移動設備上的SDF?

我想通過ActiveSync連接從Windows桌面應用程序到SDF數據庫的連接。 Visual Studio讓我創建一個數據連接到我的設備。連接測試正常,我可以使用Visual Studio查看數據庫中的數據。

然後我創建一個窗體並嘗試填充一個DataGridView。當我運行該程序時,出現數據庫路徑無效的錯誤。

我該如何在連接字符串中指定移動設備路徑?

在我App.Config中,我已經試過變化的道路上,但他們沒有工作:

connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf" 

connectionString="Data Source=\Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf" 

connectionString="Data Source=Program Files\SqlCeViaActiveSync\Orders.sdf" 

connectionString="Data Source=\Program Files\SqlCeViaActiveSync\Orders.sdf" 

完整的連接字符串部分看起來是這樣的:

<connectionStrings> 
    <add name="SqlCeViaActiveSync.Properties.Settings.OrdersConnectionString" 
     connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf" 
     providerName="Microsoft.SqlServerCe.Client.3.5" /> 
</connectionStrings> 

而且,我確實參考了Microsoft.SqlServerCe.Client,因爲我發現有幾篇文章提到它是必要的。

任何人都可以指向我最近的一些文章/樣本或讓我知道我做錯了什麼?

謝謝!

回答

0

我只是發現了以下工作:

SqlCeConnection conn = new SqlCeConnection(@"Data Source='Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf';"); 
     conn.Open(); 
     using (SqlCeTransaction trans = conn.BeginTransaction()) 
     { 
      using (SqlCeCommand cmd = conn.CreateCommand()) 
      { 
       cmd.CommandText = "SELECT [OrderNumber] FROM [Orders];"; 
       trans.Commit(); 
       SqlCeDataReader dr = cmd.ExecuteReader(); 
       while (dr.Read()) 
       { 
        this.listBox1.Items.Add((string)dr["OrderNumber"]); 
       } 

       MessageBox.Show(dr.RecordsAffected.ToString()); 
      } 
     } 
     conn.Close(); 

它不正是我一直在尋找,但會爲這個應用程序。

+0

有趣的連接字符串是您的問題的第一次嘗試。你確定你沒有寫錯嗎? – Craig 2011-03-18 18:30:35

相關問題