1

我發現一個MS article表示我可以使用.XSD文件的ConnectionString屬性在運行時更改DataSet的ConnectionString。Compact Framework 3.5 - DataSet運行時連接字符串

這在名爲「RuntimeConnectionString」的.csproj文件中設置了一個元素。

但是,當我將它部署到我的Motorola MC9190-G設備(Windows Mobile 6.5.1)時,它不會更改表適配器的ConnectionString。

我做錯了什麼,或者這是一個錯誤?使用Compact Framework更改運行時連接字符串的適當/備用選項是什麼?

在此先感謝

+0

在這一點上,我不得不問「你爲什麼首先使用數據集?」數據集是痛苦緩慢和令人難以置信的記憶豬。在一個CF應用程序,他們通常是一個死亡的跪拜。作爲一個數據點,自從2002年以來,我一直在爲設備編寫託管應用程序(因爲之前CF甚至稱爲CF),並且我從未使用DataSet超出測試,顯示它爲豬。永遠。 – ctacke 2011-05-19 17:39:24

回答

0

我花了整整一天尋找解決這個問題的方法。 看起來它是一個Visual Studio錯誤(我使用VS2008Professional並且也被困在此)。 在這種情況下,兩種可能的操作是: 1)在構建TA之前手動更改tableAdapter(TA)connectionString(實際上在連接到db之前)。

// something like this: 
if (storageDataSetUtil.DesignerUtil.IsRunTime()) 
{ 
    // path to database file in my mobile device 
    this.employeesTableAdapter.Connection.ConnectionString = @"/Program Files/MyApp/data/storage.s3db"; 

    // VS2008-generated code for auto-filling table at runtime: 
    this.employeesTableAdapter.Fill(this.storageDataSet.employees); 
} 

2)使用語句'| DataDirectory |' (不帶引號)在你的TA的connectionString中。在dataSet設計器(模式)中選擇TA並顯示其屬性。展開'Connection'字段並選擇你不用於連接數據庫的連接(當你將dataSet綁定到WinForms控件時,VS2008通常會創建一個連接,如果不是,則手動創建TA的新連接)。因此,數據庫連接的connectionString保持不變。 使用| DataDirectory |允許您在數據庫文件中使用相對路徑,並且在大多數情況下與平臺無關。至於我,這有助於。希望,這也能幫助你。

P.S.對不起英語)

相關問題