我正在学习通过单击按钮从文本框写入数据库。我已在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
加载连接字符串
答案 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=\"?\"/>"));
}
并在您的应用程序中使用此功能