我正在开发一个我托管在IIS服务器上的asp.net应用程序。打开一个连接,我使用:
SqlConnection con = new SqlConnection("Server = INLD50045747A\SQLEXPRESS;
Database = MyDatabase;User ID = sa; Password = Welcome1; Trusted_Connection = False;");
con.Open();
是否有可能将此连接字符串存储在某个地方,以便我不需要在每个aspx.cs文件中写入?我正在使用MSSQL数据库。
我正面临一个问题,上面写着:
从池中获得连接之前经过的超时时间。发生这种情况可能是因为所有池连接都在使用,并且已达到最大池大小
我在某处读到要求我将最大连接池增加到100。它会影响应用程序的性能吗?
您可能没有正确关闭打开的连接。
增加"池的大小"就像在瀑布下放一个更大的桶——它会有帮助,但几乎没有。
试着找出发生这种情况的地方:
con.Open();
如果不在try/catch语句中,则确保在try/catch语句中,并且包含finally语句。
try {
con.Open();
//several other data base releated
//activities
} catch (Exception ex) {
// do something
} finally {
con.Close();
}
另外,为了避免使用finally
块,您可以将SqlConnection包装在using语句中。
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["yourKey"].ConnectionString))
{
// write your code here
}
关于您关于连接字符串的问题,是的,将其存储在您的web.config
<connectionStrings>
<add name="name" connectionString="Data Source=;Initial Catalog=;User ID=sa;password=;Persist Security Info=True;Connection TimeOut=20; Pooling=true;Max Pool Size=500;Min Pool Size=1" providerName="System.Data.SqlClient"/>
</connectionStrings>
将其存储在web.config
文件中,在connectionStrings
部分:
<connectionStrings>
<add name="name"
connectionString="Data Source=;Initial Catalog=;User ID=sa;password=;Persist Security Info=True;Connection TimeOut=20; Pooling=true;Max Pool Size=500;Min Pool Size=1"
providerName="System.Data.SqlClient"/>
</connectionStrings>
然后你就可以在你的代码中访问它了…
ConfigurationManager.ConnectionStrings["name"].ConnectionString
也可以使用
,它将自动处置对象
如果使用"using"则不需要con.close和all
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["yourKey"].ConnectionString))
{
// write your code here
}
将连接字符串存储在web中。配置文件。你可以找到很多这样的例子。检查属性。http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.71%29.aspx
谢谢Shankar
使用Both的帮助
try
{
con.Open();
}
catch(Exception ex)
{
if(con.State== ConnectionState.Open)
con.Close();
}
finally
{
con.Close();
}
,并在Web中添加连接字符串。配置,在配置下。
是的,将它存储在网络中。配置文件,但要确保,如果有一个错误,它不显示网页的内容。配置文件给用户(从而向世界显示您的密码)
如果你在很多应用程序中使用相同的连接字符串,你可以考虑编写一个服务来提供连接字符串,这样你只需要在一个地方更改它们。
最好的选择是使用类型化设置。
打开项目属性。
进入设置选项卡。
添加新设置,以MainConnectionString
为例,选择设置类型(ConnectionString)
。在值中插入您的连接字符串或点击'…按钮,显示一个对话框来建立连接字符串。
Settings.Default.MainConnectionString
如果你打开配置文件,你会看到
<configuration>
<connectionStrings>
<add name="WebApplication1.Properties.Settings.MainConnectionString"
connectionString="Data Source=localhost;Initial Catalog=AdventureWorks;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
你可以有这个连接字符串指定:
- 为一个网站在自己的web.config.
- 用于一组网站
- 用于机器范围内的所有网站。
- 用于机器上的所有应用程序:在machine.config.
如果你有很多应用程序连接到同一个数据库,并且安装在一个盒子上,这是很方便的。如果db位置改变,您只更新一个文件机。