尝试从asp:sqldatasource标记中的类设置sql server:
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 %>"
我收到:
ConnectionString属性尚未初始化
有什么建议吗?
答案 0 :(得分:1)
顾名思义,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;
}
答案 1 :(得分:1)
信用:https://forums.asp.net/t/1072016.aspx?Dynamic+connection+strings
如果您的连接字符串是在运行时动态创建的。我们 无法在设计时设置连接字符串。
绑定到属性可能不起作用,因为这取决于您何时在控件上调用DataBind。
在这种情况下,最好在Page_Load的事件处理程序后面的代码中设置它,如
Me.dsTest.ConnectionString = objClientConnection.ConnectionString
然后你可以手动调用DataBind()。
答案 2 :(得分:0)
您好请查看我对create dynamic connectionstring的意见。
我们经常使用SqlConnection并直接设置Connectionstring或从ConfigurationManager调用(在Asp.net中)。你知道SqlConnectionStringBuilder类吗?它位于命名空间System.Data.SqlClient。
下您可以使用此类在SqlConnection类中设置Connectionstring值。这是代码: -
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;
谢谢。