ADO.NET:无法连接到mdf数据库文件

时间:2010-12-25 15:21:13

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

我正在编写一个使用SQL Server 2005数据库的应用程序。在连接字符串中,我正在指定mdf文件,如下所示:

connstr = @"Data Source=.\SQLEXPRESS; AttachDbFilename=" + fileLocation + "; Integrated Security=True; User Instance=True";

当我执行代码时:

public static void forceConnection()
{
    try
    {
        conn = new SqlConnection(connstr);
        conn.Open();
    }
    catch (Exception e)
    {
        MessageBox.Show(e.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    finally
    {
        if(conn != null)
            conn.Close();
    }
}

我收到一个例外:

  

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

此代码适用于XP,但不适用于Vista。我尝试在管理模式下运行Visual Studio并将mdf文件移动到“用户数据”文件夹,但错误仍然存​​在。

任何帮助?

3 个答案:

答案 0 :(得分:3)

您可以在命令提示符下连接到sql server db吗?我会确保你可以先连接。

尝试打开cmd提示并键入sqlcmd -S .\SQLEXPRESS -d your_dbase

答案 1 :(得分:1)

如果我的dotnet-sourcecode出现mssql-connect问题,我尝试使用其他程序连接数据库。我使用的也是用dotnet编写的queryexpress。如果这个程序有效,那么我知道问题出在我的程序代码上,否则问题在于连接字符串,代理,网络,sqlserver或用户权限。

答案 2 :(得分:0)

你真的安装了sqlexpress吗?它是使用machineName \ sqlexpress还是作为默认实例运行?

您必须验证这些情况。

如果您没有使用默认实例,则可能需要使用实际的machineName \ instance名称。