【问题标题】:Network-related or instance-specific error occurred while establishing a connection to SQL Server建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误
【发布时间】:2013-02-04 22:09:19
【问题描述】:

我只想遍历数据库中的结果。这就是我现在要做的所有事情!这是我尝试调试时遇到的错误:

发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 定位服务器/实例时出错 指定)

它指向这条线:

// fill dataset into named table
myAdapter.Fill(myDataSet, "Sent");

这是我的全部代码:

    // get connection strings from app.config
    string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;

    // connection object
    SqlConnection myConn = new SqlConnection(conString);

    // create adapter
    SqlDataAdapter myAdapter = new SqlDataAdapter("select * from `Sent`", myConn);

    // create command builder
    SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);

    // create dataset
    DataSet myDataSet = new DataSet();

    // fill dataset into named table
    myAdapter.Fill(myDataSet, "Sent");

    // query using linq
    IEnumerable<DataRow> results
        = from row in myDataSet.Tables["Sent"].AsEnumerable()
          select row;

    // enumerate through results
    foreach (DataRow row in results)
    {
        MessageBox.Show(row.ToString());
    }

我能做些什么来解决这个问题?另外,如果有人有更简单的方法在 C# 中使用数据库,我愿意接受你的想法,因为这对我来说很荒谬(在 C# 中操作数据库)。感谢您的帮助。

2012 年 6 月 29 日更新:

以下代码适用于我:

        // get connection strings from app.config
        string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;

        // connection object
        SqlCeConnection myConn = new SqlCeConnection(conString);

        // create adapter
        SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn);

        // create command builder
        SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter);

        // create dataset
        DataSet myDataSet = new DataSet();

        // fill dataset into named table
        myAdapter.Fill(myDataSet, "Sent");

        // create new row
        DataRow newRow = myDataSet.Tables["Sent"].NewRow();

        // set field vals
        newRow["sendTo"] = sendTo;
        newRow["subject"] = subject;
        newRow["message"] = message;

        // add new row to table
        myDataSet.Tables["Sent"].Rows.Add(newRow);

        // update database
        myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
        int updatedRows = myAdapter.Update(myDataSet, "Sent");
        //MessageBox.Show("There were "+updatedRows.ToString()+" updated rows");

        // close connection
        myConn.Close();

【问题讨论】:

  • 您需要检查的第一件事是您的连接字符串是否正常以及它是否指向正确的服务器/数据库。
  • 第一步:阅读信息并采取行动。第二步:谷歌消息。
  • 我同意@usr。该错误消息非常不言自明,即使不是出于某种原因,Google 的几秒钟内也会很快找到答案。问题在于您的连接字符串或 SQL 服务器本身。这个问题不属于这里。在这里提出问题之前,您应该至少做一些粗略的研究。
  • 数据库服务器工作正常吗?可以在 Sql Server Management studio 中连接吗?

标签: c# sql-server


【解决方案1】:

首先:检查您的连接字符串错误直接告诉您“嘿,我无法连接到您的数据库”

第二个:select * from Sent (不带撇号)

【讨论】:

  • 与错误信息无关,虽然你是对的。
  • 我只是想连接到本地数据库。这是我的 app.config: 我没有不知道正确的连接字符串是什么,也许你可以告诉我。我的数据库与项目位于 C:\Documents and Settings\Administrator\My Documents\Visual Studio 2010\Projects\TestingApp\TestingApp\Database1.sdf (也在 \bin 文件夹中)的同一目录中。
【解决方案2】:

您是否更改了安装 SQL Server 的机器上使用的密码?我之前也遇到过这种情况,我所做的就是将我的新密码反映到 SQL Server 配置中,然后重新启动服务。

还请确保在 SQL 配置设置中启用了 TCP/IP 设置。

【讨论】:

    【解决方案3】:

    当我们没有在sql server配置管理器中更改tcp/ip设置时会出现这种错误。所以we need enable the tcp/ip property to resolve this error

    【讨论】:

      【解决方案4】:

      这里可能是显而易见的,但您是否检查过 SqlExpress 服务正在运行?

      https://stackoverflow.com/a/4650231/1095373

      【讨论】:

      • 不,我只需要修复我的代码。我更新了我的答案。
      【解决方案5】:

      我没有使用正确的代码(它与任何连接的东西没有任何关系)。这是我第一次尝试使用 PHP 以外的语言连接到数据库。现在,我可能会使用 LINQ 或 Lambda 表达式而不是这段代码。但这是我使用的有效方法:

          // get connection strings from app.config
          string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;
      
          // connection object
          SqlCeConnection myConn = new SqlCeConnection(conString);
      
          // create adapter
          SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn);
      
          // create command builder
          SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter);
      
          // create dataset
          DataSet myDataSet = new DataSet();
      
          // fill dataset into named table
          myAdapter.Fill(myDataSet, "Sent");
      
          // create new row
          DataRow newRow = myDataSet.Tables["Sent"].NewRow();
      
          // set field vals
          newRow["sendTo"] = sendTo;
          newRow["subject"] = subject;
          newRow["message"] = message;
      
          // add new row to table
          myDataSet.Tables["Sent"].Rows.Add(newRow);
      
          // update database
          myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
          int updatedRows = myAdapter.Update(myDataSet, "Sent");
          //MessageBox.Show("There were "+updatedRows.ToString()+" updated rows");
      
          // close connection
          myConn.Close();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多