我有一個連接到SQL Server 2003的VB.NET應用程序。在服務器上有兩個數據庫MyDatabase和MyDatabase_Test。我想要做的是在程序啓動時顯示一個對話框,讓用戶選擇使用哪個數據庫。我的想法是創建一個新窗體作爲設置此屬性的Starup窗體,然後啓動主窗體。啓動時在VB.NET應用程序中選擇連接字符串
當前連接字符串是在應用程序配置文件中指定的。最好的情況是,如果我可以在該文件中指定兩個不同的連接字符串進行選擇,但現在也可以使用其他解決方案,例如將兩個連接字符串硬編碼到啓動窗體中。
編輯:在dataset.xsd文件似乎有相關的部分
<Connections>
<Connection AppSettingsObjectName="MySettings" AppSettingsPropertyName="MyDatabase_ConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="MyDatabase_ConnectionString(MySettings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.MyProgram.My.MySettings.GlobalReference.Default.MyDatabase_ConnectionString" Provider="System.Data.SqlClient" />
</Connections>
但是我怎麼改變它在運行時?我能找到的最接近的是改變哪個連接用於每個TableAdapter,但看起來並不是最佳的。編輯2:我同意啓動時的模式對話框會更好,但我會在哪裏啓動它,以便它在數據庫連接啓動之前完成?
EDIT3:最終我通過從設置文件中刪除ReadOnly來「解決」它。這將在每次文件自動生成時被刪除,因此它不是最優的。
編輯4:一個更好的解決方案似乎是使用用戶範圍字符串而不是連接字符串來鏈接數據集並從兩個應用程序範圍的ConnectionStrings中獲取該字符串的值。
您使用的是什麼數據訪問技術?純ADO.NET? LINQ-2-SQL?表適配器? – Jeremy 2010-04-27 12:59:31
此外,沒有SQL Server 2003.有2000年,2005年和2008年 – Jeremy 2010-04-27 13:00:06
我沒有爲TableAdapter自動生成的代碼,但我會認爲你可以很容易地修改它,以阻止它自動連接,然後只是給它一個連接方法或類似的。 – 2010-04-27 13:20:51