【问题标题】:Connection String in c#c#中的连接字符串
【发布时间】:2011-01-04 21:09:20
【问题描述】:

我正在尝试使用我的连接字符串连接到数据库,并在尝试连接到数据库时收到以下错误。对于集成安全性,我使用 SSID,因此我不必输入用户名和密码。此外,数据库驻留在同一台机器上,并且是在 VS2010 中创建的。我可以使用 SqlDataSource 毫无问题地连接到数据库,但我希望开始编写自己的连接字符串。

    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        string source = "server=(local)" + "integrated security=SSPI;" + "Connect     Timeout=30; "  + "database=Name";
        SqlConnection conn = new SqlConnection(source);
        conn.Open();

        conn.Close();

    }

我得到的错误是这样的:

与网络相关的或特定于实例的 建立时发生错误 连接到 SQL Server。服务器 未找到或无法访问。 验证实例名称是否为 正确,并且 SQL Server 是 配置为允许远程 连接。 (提供者:命名管道 提供者,错误:40 - 无法打开 连接到 SQL Server)

【问题讨论】:

    标签: c# asp.net sql-server connection-string


    【解决方案1】:

    尝试以下语法作为连接字符串:

    string source = "Data Source=Server Address;Initial Catalog=Database Name;Integrated Security=SSPI;";
    

    服务器地址应该是 localhost 或 .\SQLExpress

    希望那是正确的。我还没有安装用于测试的 vs

    【讨论】:

    • 谢谢,我没有使用 server=(local),而是使用完整地址切换到数据源。如果其他人尝试这样做,请确保您在地址中使用双反斜杠。例如,C:\\MyDoc\\database.mdf.
    【解决方案2】:

    您在服务器名称后缺少;

    如果连接字符串的所有部分没有改变,为什么还要连接它们?它使阅读变得更加困难。

    试试这个:

    string source = "server=(local);integrated security=SSPI;ConnectTimeout=30;database=Name";
    

    【讨论】:

    • 你的绝对正确,我是,但现在我又回到了我的旧错误。
    • 无法打开登录请求的数据库“名称”。登录失败。用户“X\xm”登录失败。
    • 我认为如果我使用 Windows 集成安全性,登录时提供的凭据将传递给 SQL Server。这允许我删除 uid 和 pwd 并插入 Integrated Security=SSPI。
    • @jpavlov:你的数据库真的叫“名字”吗?
    • @jpavlov - 正确,只要数据库 Name 存在并且您登录的帐户有权使用它(安全/用户部分)。
    【解决方案3】:

    在(本地)之后需要一个分号

    string source = "server=(local);" + "integrated security=SSPI

    我注意到你用 asp.net 标记了这个问题 默认情况下,asp.net 在系统帐户下运行,当您使用集成安全时,该帐户正在尝试访问您的数据库,它可能没有权限。

    查看here 了解一些信息。

    【讨论】:

      【解决方案4】:

      我建议你使用SqlConnectionStringBuilderhttp://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder(v=VS.100).aspx

      这可能会让事情变得更容易。

      【讨论】:

        【解决方案5】:

        要从 C#.NET 连接到 SQL Server,您需要创建一个连接字符串,如下所示:

        private SqlConnection connection;
        private string connectionString =
            @"Server=(local);Database=Embedding_SQL_Test;User ID=sa;Password=123";
        connection = new SqlConnection( connectionString );
        

        接下来,你使用上面创建的SqlConnection对象来创建一个'SqlCommand',如下图:

        SqlCommand cmd = new SqlCommand( "select * from Customer where CustomerID = @Cid",
            connection); 
        

        此处显示的 SQL 查询可以替换为 SELECTINSERTUPDATE 查询等。

        接下来要在数据库中执行 SQL 查询,您可以使用以下方法: ExecuteReader - 执行 SELECT 查询 ExecuteNonQuery - 执行 INSERTDELETEUPDATESET 语句。

        这是关于如何从 C# 连接到 SQL Server 数据库并在数据库中执行 SQL 查询的非常简短的描述。 有关连接字符串、方法及其参数的详细信息,请查看以下链接:(http://www.shahriarnk.com/Shahriar-N-K-Research-Embedding-SQL-in-C-Sharp-Java.html) 在这里您还可以找到有关如何将参数传递给 SQL 查询以及调用存储过程等的详细信息。

        【讨论】:

          猜你喜欢
          • 2018-03-06
          • 1970-01-01
          • 1970-01-01
          • 2013-08-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多