1

我們有一個VS2010解決方案,其中包含一個Web應用程序(啓動項目)和一個用於數據訪問的類庫。連接字符串存儲在web應用程序的connectionString.config中,該應用程序在web應用程序的web.config中引用。類庫中的現有代碼使用System.Data.SqlClient命中數據庫。此代碼通過獲取連接字符串:XSD DataSet - 在設計時使用來自另一個項目的連接字符串以及運行時

ConfigurationManager.ConnectionStrings["OurDbName"].ToString(); 

有班上iibrary沒有連接字符串的設置,所以在運行時這是直接從Web應用程序的配置連接字符串。

我想將「visual」xsd數據集添加到類庫中。但是,爲此,您需要在設計時定義連接字符串,並且設計人員不會識別Web應用程序中的運行時默認配置。就目前來看,要創建和使用類庫中的xsd數據集,我需要在其中定義一個單獨的連接字符串(通過項目的「設置」窗口)。至少我這樣做,如果我想在數據集設計器中的拖放和上下文菜單功能。

我知道如何在運行時設置連接字符串。我嘗試過的幾種方法在設計時都沒有提供。

有沒有一種方法可以在數據訪問類庫之外的地方定義連接字符串,但在設計時仍然可以在類庫中使用xsd數據集的連接?

我認爲第一個明顯的答案是在數據訪問類庫中有連接配置,並且如果有必要的話其他項目在那裏引用它。不過,我現在不能保證這是一個選項。

謝謝!

回答

1

「是否有一個連接字符串定義的地方比 數據訪問類庫等,但仍必須在設計時XSD類庫中的數據集提供 連接的方法嗎?」

[知道這是一個古老的線程,但我有同樣的問題,並沒有找到完整的答案其他地方......所以,以供將來參考...]

最好的辦法我已發現有XSD設計者的好處,並且能夠更改連接設置以進行暫存和生產,如下所示: - 注意:這適用於VS 2012 ...認爲它也應該在2010 - 此外,DataSets是通過從服務器資源管理器中拖動來創建的,該服務器資源管理器將連接信息保存在設計時使用的類庫app.config和Properties.Settings.settings中。

1)對於每一個數據表,點擊的TableAdapter頭(下面的屬性和上述的方法),並期待在屬性 2)連接修飾符更改爲公共 3)然後,代碼以訪問表應該是像下面這樣(其中類庫被命名爲DALib)...

using DALib; 
using System.Web.Configuration; 

PriceData.averageSalePriceFDataTable priceTable; 
DALib.PriceDataTableAdapters.averageSalePriceFTableAdapter priceAdapter 
    = new DALib.PriceDataTableAdapters.averageSalePriceFTableAdapter(); 

priceAdapter.Connection.ConnectionString 
    = WebConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString; 

priceTable = priceAdapter.GetData(... parameters ...); 

這將使用連接字符串中的類庫的設計和運行時從Web.config文件撿起來。

+0

我剛剛在我的通知中看到了這個,非常感謝你分享=) – 2013-10-31 15:59:33

相關問題