我正在开发一个我在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.这会影响我的应用程序的性能吗?
答案 0 :(得分:4)
将其存储在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
答案 1 :(得分:4)
你可能没有关闭你的开放连接。
增加“游泳池大小”就像在瀑布下放一个更大的水桶 - 它会有所帮助,但几乎没有。
尝试找到发生类似情况的区域:
con.Open();
确保如果它不在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>
答案 2 :(得分:3)
你也可以使用
它会自动处理对象
如果您使用“使用”,则不需要con.close和所有
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["yourKey"].ConnectionString))
{
// write your code here
}
答案 3 :(得分:2)
将连接字符串存储在web.config文件中。你可以找到很多例子。检查这些属性。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.71%29.aspx
由于 香卡
答案 4 :(得分:1)
使用两者的帮助
try
{
con.Open();
}
catch(Exception ex)
{
if(con.State== ConnectionState.Open)
con.Close();
}
finally
{
con.Close();
}
并在Configuration.Config中的Configuration下添加Connection String。这对你有帮助。
答案 5 :(得分:1)
是的,将其存储在web.config文件中,但要确保如果出现错误,则不会向用户显示web.config文件的内容(从而向全世界显示您的密码。)
如果您在许多应用程序中使用相同的连接字符串,您可以考虑编写服务来提供连接字符串,这样您只需在一个地方更改它们。
答案 6 :(得分:0)
最佳选择是使用键入的设置。
打开您的项目属性
转到“设置”选项卡
添加新设置,例如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>
您可以拥有此连接字符串 指定:
如果您有许多应用程序连接到同一个数据库并安装在一个盒子上,这可能很方便。如果db location更改,则只更新一个文件machine.config,而不是转到每个应用程序的配置文件。