2010-06-01 83 views
0

我在asp.net(web表单)中有一个页面,直到现在为止只有一个数据库用于数据。动态更改asp.net中的SqlDataSource连接字符串

因此,所有需要来自数据库的东西的控件都使用数据源和相同的连接字符串。

<asp:SqlDataSource id="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:DefaultConnectionString %>" 
        ProviderName="System.Data.SqlClient" 
             SelectCommand="SELECT ... "> 
</asp:SqlDataSource> 

到现在为止,我只需要一个连接字符串,因为我只有一个数据库,但这种情况已经改变,因为我想要一些用户连接到数据库A和别人数据库B

什么是正确的该怎么办?最好不用很多变化......

回答

1

您可以编程改变它,你确定要使用哪一个之后,即

SqlDataSource1.ConnectionString = "whateveryouwant"; 

它没有必须在控制在线设置。

+0

什么时候在页面生命周期中做最好的时候呢?我有这种方式作为备份,因为我必须去搜索所有的sqlDataSource并手动更改它们。 – 2010-06-01 12:25:17

+0

你将在哪里确定用户信息?最有可能之后,可能会在会话开始时在Global.asax的应用程序级别?或在Page_Load页面级别,不知道你的设计,所以只是抛出建议:) – kd7 2010-06-01 12:34:00

+0

我有默认的asp.net成员资格(在第三个数据库),所以当用户登录取决于一些参数,我可以找出什么他应该属于的数据库。这是我的第一个网站,所以我不太了解Global.asax或类似的东西......你能给一些链接吗? – 2010-06-01 12:39:22

1

在你的页面你有SqlDataSource1,并在你的web.config,你应该有:

<connectionStrings> 
    <add name="MyConectionString" connectionString="Data Source=127.0.0.1;Initial Catalog=DBNAME;User ID=userName;Password=PASS" /> 
</connectionStrings> 

连接字符串后面添加到您的SqlDatasource1,在代码(CS文件)使用下面的代码onliad methot:

SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionStrings["MyConectionString"].ConnectionString; 
+0

你好!您能否为您的答案添加更多的上下文或解释? – 2013-04-16 14:24:29

+0

在你的页面上你有SqlDataSource1,并且在你的web.config中也应该有: ''connectionStrings> ' 并将连接字符串添加到您使用上述代码的SqlDatasource1中。 – 2013-04-17 08:22:48