从web.config文件获取sql连接字符串

时间:2013-03-21 06:25:06

标签: c# asp.net sql-server web-config connection-string

我正在学习通过单击按钮从文本框写入数据库。我已在web.config文件中为我的NorthWind数据库指定了连接字符串。但是,我无法访问后面的代码中的连接字符串。

这就是我的尝试。

protected void buttontb_click(object sender, EventArgs e)
{
    System.Configuration.Configuration rootwebconfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/Mohtisham");
    System.Configuration.ConnectionStringSettings constring;
    constring = rootwebconfig.ConnectionStrings.ConnectionStrings["northwindconnect"];
    SqlConnection sql = new SqlConnection(constring);

    sql.Open();
    SqlCommand comm = new SqlCommand("Insert into categories (categoryName) values ('" + tb_database.Text + "')", sql);
    comm.ExecuteNonQuery();
    sql.Close();
}

我收到了

的工具提示错误
SqlConnection sql = new SqlConnection(constring);

作为

  

System.data.SqlClient.Sqlconnection.Sqlconnection(string)有一些无效的参数。

我想从web.config

中的constring加载连接字符串

4 个答案:

答案 0 :(得分:10)

您只需向Name ConnectionString文件中的web.config提供<add name="ConnectionStringName" connectionString=YourServer"; Initial Catalog=YourDB; Integrated Security=True"/> 即可:

web.config:

SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionStringName"].ToString());

代码背后:

{{1}}

答案 1 :(得分:8)

这是因为ConnectionStrings集合是ConnectionStringSettings个对象的集合,但SqlConnection构造函数需要string个参数。所以你不能单独传递constring

试试这个。

SqlConnection sql = new SqlConnection(constring.ConnectionString);

答案 2 :(得分:4)

试试这个

readonly SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["northwindconnect"].ToString());

答案 3 :(得分:0)

我建议你创建一个函数而不是直接访问web.config文件,如下所示

    public static string GetConfigurationValue(string pstrKey)
    {
        var configurationValue = ConfigurationManager.AppSettings[pstrKey];
        if (!string.IsNullOrWhiteSpace(configurationValue))
            return configurationValue;

        throw (new ApplicationException(
            "Configuration Tag is missing web.config. It should contain   <add key=\"" + pstrKey + "\" value=\"?\"/>"));

    }

并在您的应用程序中使用此功能