【问题标题】:Getting asp:SqlDataSource Connection String dynamically from a method (Without Webconfig)从方法动态获取asp:SqlDataSource连接字符串(无Webconfig)
【发布时间】:2016-10-22 10:06:12
【问题描述】:

尝试从 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 属性尚未初始化

有什么建议吗?

【问题讨论】:

    标签: c# asp.net connection-string


    【解决方案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;
    }
    

    【讨论】:

    • 我正在返回 SqlConnection.ConnectionString
    • 不,因为没有。至少不在你的 sn-p 中。但我已经更新了我的答案,以包含SqlConnection 的回报。
    • 谢谢。这些函数正在从属性部分获取连接字符串部分。它有效,我可以向你保证。 asp:SqlConnection的语法有问题
    【解决方案2】:

    信用:https://forums.asp.net/t/1072016.aspx?Dynamic+connection+strings

    如果您的连接字符串是在运行时动态创建的。我们 无法在设计时设置连接字符串。

    绑定到属性可能不起作用,因为这取决于您何时在控件上调用 DataBind。

    在这种情况下,最好在 Page_Load 的事件处理程序后面的代码中设置它

    Me.dsTest.ConnectionString = objClientConnection.ConnectionString
    

    然后你可以手动调用DataBind()。

    【讨论】:

      【解决方案3】:

      我们经常使用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;
      

      【讨论】:

        猜你喜欢
        • 2013-11-08
        • 2016-07-30
        • 2011-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        • 2021-03-10
        相关资源
        最近更新 更多