C# ADO.NET:Can';无法连接到mdf数据库文件

C# ADO.NET:Can';无法连接到mdf数据库文件,c#,sql-server,sql-server-2005,ado.net,connection-string,C#,Sql Server,Sql Server 2005,Ado.net,Connection String,我正在编写一个使用SQLServer2005数据库的应用程序。在连接字符串中,我指定的mdf文件如下: connstr = @"Data Source=.\SQLEXPRESS; AttachDbFilename=" + fileLocation + "; Integrated Security=True; User Instance=True"; 当我执行代码时: public static void forceConnection() { try { con

我正在编写一个使用SQLServer2005数据库的应用程序。在连接字符串中,我指定的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。我尝试在管理模式下运行VisualStudio,并将mdf文件移动到“用户数据”文件夹,但错误仍然存在


有什么帮助吗?

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

你必须核实这些案例


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

如果我的dotnet源代码存在mssql连接问题,我会尝试使用其他程序连接到数据库。我用的也是用dotnet写的。如果此程序正常工作,则我知道问题出在我的程序代码上,否则问题出在连接字符串、代理、网络、sqlserver或用户权限上。

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


尝试打开cmd提示符并键入
sqlcmd-S。\SQLEXPRESS-d您的数据库

是的,我已安装sql server。如果我尝试直接连接到sql server(将“Database=…”添加到连接字符串),它就会工作。使用“\SQLEXPRESS”或“{myMachineName}\SQLEXPRESS”会产生相同的结果。在sql server中,如果连接到数据库,它是否正在连接。如果出现异常错误,则打开服务器也会出现相同的错误。这就是ITI背后的逻辑如果我将mdf连接到数据库,我就可以连接。但这不是我想要的行为……你说得对,我不能我收到“错误定位指定的服务器/实例[xFFFFFFF]”@Nabo,你不能,因为你的数据库名称不是你想要的。该死的。。。当我从pc移动时,数据库名称已更改,不再是“SQLEXPRESS”。。我认为这个答案是正确的,因为它是最有用的。谢谢您是否能够诊断并修复您的问题?