在ASP.NET中设置与SQL SERVER的连接字符串

101

我正在尝试在我的web.config文件(Visual Studio 2008/ASP.NET 3.5)中设置连接字符串,以连接到本地服务器(SQL server 2008)。

在我的web.config文件中,我应该在哪里放置连接字符串?如何放置?

这是我的web.config文件目前的样子:http://imwired.net/aspnet/Online_web.config

15个回答

154

您也可以使用这个,它更简单。您需要设置的唯一事项是“YourDataBaseName”。

  <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

如何放置连接字符串

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  

当我想执行一些查询时,如何在我的C#代码后台中使用它。 - Nikhil Tamhankar
1
您可以在以下网址中查看有关dot net连接字符串的详细信息:http://www.connectionstrings.com/sql-server-2008 - Vimal bhatt
5
我想知道有多少人复制并粘贴了那行文字…… :-) 我觉得这已经是我第30次来回答这个问题了……也许我应该背下来。 - Ayo Adesina
谢谢您的提示,@Aristos。它似乎运行得非常好。它是如何知道在数据库中使用哪个用户的? - Burgi
@SteveSmith 在6年前,他可能是第一个回答问题的人之一,与提问者交流并帮助他根据问题和评论建立连接字符串。虽然我不记得6年前的具体情况,但我认为这对更多的人有所帮助。 - Aristos
显示剩余5条评论

109

由于某种原因,我在这里没有看到简单的答案。

将以下代码放置在您的代码顶部:

using System.Web.Configuration;
using System.Data.SqlClient; 
将以下内容添加到 Web.Config 文件中:
<connectionStrings >
    <add
         name="myConnectionString" 
         connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

并且你想设置连接变量的位置:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString 可能更加技术上正确。 - crush
2
我也需要:using System.Data.SqlClient; - nu everest

23

我发现这个问题非常难以获得答案,但最终找到了解决方法。下面我将写出步骤。

  1. 在您在代码中设置连接字符串之前,请确保您实际上可以访问您的数据库。首先使用 SSMS(Sql Server Management Studio 或其他数据库中的等效工具)登录到本地数据库服务器,以确保您可以使用打算使用的任何详细信息进行访问。

  2. 接下来(如果需要),如果您正在尝试访问单独的服务器上的数据库,请确保您可以在 SSMS 中进行同样的操作。因此,在计算机上设置 SSMS 并确保您可以使用数据库服务器的用户名和密码访问该服务器。

如果您无法正确完成上述 2 步,则只是浪费时间,因为您无法访问数据库。这可能是因为您设置的用户错误,没有启用远程访问(如果需要),或者端口未打开(如果需要),还有很多其他原因,但这些是最常见的原因。

一旦您已经验证可以使用 SSMS 访问数据库。下一步,仅出于自动化过程并避免出错的考虑,就是让系统为您完成工作。

  1. 启动一个空项目,添加您选择的 Linq to SQL 或 Dataset(EF 也不错,但连接字符串嵌入在 EF con 字符串中,我想要一个干净的连接字符串),并使用上面验证的详细信息在 con string 向导中连接到您的数据库。添加任何表并保存文件。

现在进入 web config,不出所料,您将看到完美无缺的连接字符串,其中包含您需要的所有详细信息。


{ 以下是旧帖子的一部分,您可以忽略此部分,我将其保留作为参考,因为这是仅从代码后端访问数据库的最基本方式。请向下滚动,并从下面的步骤 2 开始。 }

假设上述步骤让您从代码后台开始使用如下所示的连接字符串:

string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";

这一步非常重要。确保您已经成功使用上述的连接字符串格式,然后再继续下一步。请务必确保您可以通过某种形式的SQL命令文本访问数据,以在标签或文本框等控件中显示来自表格的一些数据,因为这是连接字符串的最简单方法。

一旦您确定了上述样式可行,现在是时候采取下一步骤了:

1.将字符串字面值(引号内的内容,包括引号)导出到web.config文件的以下部分(对于多个连接字符串,只需添加多个<add name="..." connectionString="..." />即可:

<configuration>
    <connectionStrings>
        <add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

{ 上面的内容是一篇旧帖子的部分内容,经过前三个步骤后整个过程将为您完成,所以您可以忽略它。我只是把它留在这里作为我的参考。 }


2. 现在在C#代码后台中添加以下代码行,最好放在类定义下面(即不要放在方法内)。这指向你项目的根目录,基本上就是项目名称。通常情况下,这是web.config文件的位置(在这种情况下,我的项目名叫MyProject)。

static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");

3. 现在在C#代码后面添加以下代码行。这将设置一个字符串常量,您可以在代码的许多位置引用它,如果您需要在不同的方法中使用conString。

const string CONSTRINGNAME = "conString";

4. 接下来,在C#代码后端添加以下代码行。 这将使用上面的常量从web.config文件中获取名为conString的连接字符串。

ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];

5. 最后,你原本可能会有类似于这行代码的东西:

SqlConnection con = new SqlConnection(conString)

您将用以下代码行替换它:

SqlConnection con = new SqlConnection(conString.ConnectionString)
在完成这5个步骤后,您的代码应该与之前一样运行。因此,首先测试原始格式的连接字符串,以便您知道是连接字符串有问题还是代码有问题。
我刚开始学习C#、ASP.Net和SQL Server,所以我相信有更好的方法来编写这段代码。如果有可能,请给我反馈意见,告诉我如何改进这些步骤。我已经四处寻找类似的资料,但是在许多周的努力之后,我终于想通了。尽管如此,我仍然认为,肯定有更简单的方法。
希望这对您有所帮助。

14

它应该在<configuration>节点内部:

  <connectionStrings >
    <add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

网站有更多相关信息:


1
当我想在ASP.NET 4中执行一些查询时,如何在我的C#代码后台中使用它? - Nikhil Tamhankar

7

在WebConfig中的连接

将您的连接字符串添加到Web.config文件中的<connectionStrings>元素中。

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

在 Class.Cs 中

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}

6

在头部

using System.Configuration;

在代码中
SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);

3
你也可以使用外部配置文件来指定连接字符串部分,并在应用程序配置文件中引用该文件,例如在web.config中。
就像在web.config文件中一样:
<configuration>  
    <connectionStrings configSource="connections.config"/>  
</configuration>  

外部配置文件connections.config将包含连接部分。

<connectionStrings>  
  <add name="Name"   
   providerName="System.Data.ProviderName"   
   connectionString="Valid Connection String;" />  

</connectionStrings>  

修改外部配置文件的内容不会重新启动应用程序(与ASP.net默认情况下对应用程序配置文件的任何更改不同)。

2

如果您想在Web.config中编写连接字符串,请在以下字符串下编写:

<connectionStrings>
  <add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

或者

你可以在 aspx.cs 文件中像这样输入:

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");

2
你可以使用以下格式:
  <connectionStrings>
    <add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  </connectionStrings>

<appSettings>后面,你很可能会在web.config文件中找到connectionstring标签。
试试这个。

2
您可以将以下内容放入您的web.config文件中的connectionStrings部分:
<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接