我应该在哪里放置数据库连接字符串以及如何处理连接池?

我正在开发一个我在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中,它在一个中,并且它包含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中

    

将它存储在web.config文件的connectionStrings部分中:

    

然后您就可以在代码中访问它了…

 ConfigurationManager.ConnectionStrings["name"].ConnectionString 

你也可以用

它会自动处理对象

如果你使用“使用”,则不需要con.close和all

  using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["yourKey"].ConnectionString)) { // write your code here } 

将连接字符串存储在web.config文件中。 你可以找到很多例子。 检查这些属性。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.71%29.aspx

谢谢尚卡尔

使用两者的帮助

 try { con.Open(); } catch(Exception ex) { if(con.State== ConnectionState.Open) con.Close(); } finally { con.Close(); } 

并在Configuration下的Web.Config中添加连接字符串。 这对你有所帮助。

是的,将其存储在web.config文件中,但要确保如果出现错误,则不会向用户显示web.config文件的内容(从而向全世界显示您的密码。)

如果在许多应用程序中使用相同的连接字符串,则可以考虑编写服务以提供连接字符串,这样您只需在一个位置更改它们。

最好的选择是使用键入的设置。

打开项目属性。
转到“设置”选项卡。
添加新设置,例如MainConnectionString ,选择设置类型(ConnectionString) 。 在值中插入您的连接字符串或点击“…”按钮以带​​来一个对话框来构建连接字符串。

现在,您可以在代码中引用您的连接字符串,如下所示:

Settings.Default.MainConnectionString

如果您打开配置文件,您将看到

      

您可以指定此连接字符串:

  • 一个网站在自己的web.config中。
  • 对于一组网站
  • 对于盒子上的所有网站:在机器范围web.config中。
  • 对于盒子上的所有应用程序:在machine.config中。

如果您有许多应用程序连接到同一个数据库并安装在一个盒子上,这可能很方便。 如果db location更改,则只更新一个文件machine.config,而不是转到每个应用程序的配置文件。