从方法动态获取 asp:SqlDataSource 连接字符串(无 Webconfig)
Getting asp:SqlDataSource Connection String dynamically from a method (Without Webconfig)
正在尝试从 asp:sqldatasource 标签中的 class 设置 sql 服务器:
Public static SqlConnection getConnection()
{
SqlConnection conn = new SqlConnection();
//rest of the code that 100% works
return conn;
}
此函数已在 C# 代码中测试,100% 有效。
现在我想在 asp:SqlDataSource:
中使用它
<asp:SqlDataSource runat="server" ID="sqlDBConnection"
ConnectionString="<%# inProcessInventory.DataTools.getConnection().ConnectionString %>"
我收到:
The ConnectionString property has not been initialized
有什么建议吗?
ConnectionString,顾名思义,就是一个字符串。您正在返回一个 SqlConnection
,其中需要一个字符串。
public static string getConnection()
{
return "Data Source=localhost;Initial Catalog=yourDB;User ID=yourUser;Password=pa$$w0rd";
}
或者
public static SqlConnection getConnection()
{
SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=yourDB;User ID=yourUser;Password=pa$$w0rd");
return conn;
}
更新
如果您在后面的代码中设置连接字符串,它确实可以正常工作:
protected void Page_Load(object sender, EventArgs e)
{
sqlDBConnection.ConnectionString = inProcessInventory.DataTools.getConnection().ConnectionString;
}
来源:https://forums.asp.net/t/1072016.aspx?Dynamic+connection+strings
If your connection string is created dynamically at run time. We
cannot set the connection string at design time.
绑定到 属性 可能不起作用,因为这取决于您何时在控件上调用 DataBind。
在这种情况下,最好在 Page_Load 的事件处理程序后面的代码中设置它,例如
Me.dsTest.ConnectionString = objClientConnection.ConnectionString
然后您可以手动调用 DataBind()。
我们经常使用 SqlConnection 并直接设置 Connectionstring 或从 configurationManager 中调用(in Asp.net)。您了解 SqlConnectionStringBuilder Class。它在命名空间 System.Data.SqlClient .
下
您可以使用此 class 在 SqlConnection Class 中设置连接字符串值。这是代码:
SqlConnection myConnection = new SqlConnection();
SqlConnectionStringBuilder myBuilder = new SqlConnectionStringBuilder();
myBuilder.UserID = "sa";
myBuilder.Password = "sa123";
myBuilder.InitialCatalog = "DbName";
myBuilder.DataSource = "ServerName";
myBuilder.ConnectTimeout = 30;
myConnection.ConnectionString = myBuilder.ConnectionString;
正在尝试从 asp:sqldatasource 标签中的 class 设置 sql 服务器:
Public static SqlConnection getConnection()
{
SqlConnection conn = new SqlConnection();
//rest of the code that 100% works
return conn;
}
此函数已在 C# 代码中测试,100% 有效。 现在我想在 asp:SqlDataSource:
中使用它<asp:SqlDataSource runat="server" ID="sqlDBConnection"
ConnectionString="<%# inProcessInventory.DataTools.getConnection().ConnectionString %>"
我收到:
The ConnectionString property has not been initialized
有什么建议吗?
ConnectionString,顾名思义,就是一个字符串。您正在返回一个 SqlConnection
,其中需要一个字符串。
public static string getConnection()
{
return "Data Source=localhost;Initial Catalog=yourDB;User ID=yourUser;Password=pa$$w0rd";
}
或者
public static SqlConnection getConnection()
{
SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=yourDB;User ID=yourUser;Password=pa$$w0rd");
return conn;
}
更新
如果您在后面的代码中设置连接字符串,它确实可以正常工作:
protected void Page_Load(object sender, EventArgs e)
{
sqlDBConnection.ConnectionString = inProcessInventory.DataTools.getConnection().ConnectionString;
}
来源:https://forums.asp.net/t/1072016.aspx?Dynamic+connection+strings
If your connection string is created dynamically at run time. We cannot set the connection string at design time.
绑定到 属性 可能不起作用,因为这取决于您何时在控件上调用 DataBind。
在这种情况下,最好在 Page_Load 的事件处理程序后面的代码中设置它,例如
Me.dsTest.ConnectionString = objClientConnection.ConnectionString
然后您可以手动调用 DataBind()。
我们经常使用 SqlConnection 并直接设置 Connectionstring 或从 configurationManager 中调用(in Asp.net)。您了解 SqlConnectionStringBuilder Class。它在命名空间 System.Data.SqlClient .
下您可以使用此 class 在 SqlConnection Class 中设置连接字符串值。这是代码:
SqlConnection myConnection = new SqlConnection();
SqlConnectionStringBuilder myBuilder = new SqlConnectionStringBuilder();
myBuilder.UserID = "sa";
myBuilder.Password = "sa123";
myBuilder.InitialCatalog = "DbName";
myBuilder.DataSource = "ServerName";
myBuilder.ConnectTimeout = 30;
myConnection.ConnectionString = myBuilder.ConnectionString;