使用SQLServer连接到数据库时出错

时间:2013-01-11 09:57:24

标签: .net sql-server visual-studio-2010 sql-server-2008

在Visual Studio 2010上,我有一个我正在尝试连接的数据库,但是当我尝试这样做时:

db.Open();

它启动了这个错误:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)

我尝试做this链接所说的内容,但我仍然遇到同样的错误。

有关正在发生的事情的任何想法?

编辑:防火墙已关闭。

连接字符串: MySQLProject.Properties.Settings.Default.dbConnectionString =“Data Source = | DataDirectory | \ db.sdf”

服务器已启动:

enter image description here

EDIT2:

这是失败的代码:

public void FillData()
    {
        // 1 step. Open connection
        // SqlConnection c = new SqlConnection("Data Source=" +db.Connection.DataSource);
        SqlConnection c = new SqlConnection(MySQLProject.Properties.Settings.Default.dbConnectionString);
        try
        {
            c.Open();

            // 2 step. Create new DataAdapter
            using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM USER", c))
            {
                // 3 step. Use DataAdapter to fill table
                DataTable t = new DataTable();
                a.Fill(t);
                // 4 step. Render data on the DataGridView
                dataGridViewUsers.DataSource = t;
            }
        }
        catch (SqlException e)
        {
            MessageBox.Show(e.Message);
        }
    }

编辑1000:

好的,我使用了这个连接字符串:

string con2 = @"Server=.\SQLExpress;AttachDbFilename=|DataDirectory|db.sdf;Database=db;Trusted_Connection=Yes;";

然后它说:

enter image description here

:____(

好的,现在我知道.sdf适用于CE Sql语句。但是,我无法创建.mdf,不知道为什么......我应该更改为CE Sql语句吗?

3 个答案:

答案 0 :(得分:1)

最典型的原因是:

  • 服务器未运行
  • 连接字符串有拼写错误(有些字母错误)

因此,当连接到不存在或已关闭的服务器时,会显示此消息

编辑:请尝试检查一下:SQL Server Express connection string for Entity Framework Code First,因为看起来你的conn字符串不完整:

connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                       AttachDBFilename=|DataDirectory|aspnetdb.sdf;
                       User Instance=true"

答案 1 :(得分:0)

这只是意味着找不到服务器。

  • 检查连接字符串
  • 服务器根本没有运行
  • 检查防火墙

答案 2 :(得分:0)

仅针对那些发现同样问题的人:

由于我无法创建.mdf数据库,只有.sdf个数据库,正如@RadimKöhler所说,.sdf数据库我必须使用SqlCe...个实例。我的连接字符串说:

@"Data Source=|DataDirectory|db.sdf;Persist Security Info=False;"

我这样连接:

SqlCeConnection c = new SqlCeConnection(con3); //MySQLProject.Properties.Settings.Default.dbConnectionString);
            c.Open();