0

我创建了这个与数据库相关的软件,当我将它安装在我的机器上并访问它的数据库时,它运行得很好,但是当我将它安装在另一台机器上并尝试访问数据库时,它给出了这个错误:

建立与 SQL Server 的连接时发生与网络相关的实例或特定于实例的错误。服务器未找到或无法访问。验证实例是否正确以及 SQL Server 是否配置为允许远程连接。(提供:SQL 网络接口:错误 52 - 无法找到数据库运行时安装。验证 SQL Server Express 已正确安装并且本地数据库运行时功能已启用

这是我所做的连接的代码

 var ttg = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename="+ttg+"\\Datex Inc\\Time Table Generator\\Database\\timetable.mdf;Integrated Security=True");
        SqlCommand cmd = new SqlCommand();
        con.Open();
        DataTable dt = con.GetSchema("Tables");
        foreach (DataRow row in dt.Rows)
        {
            string tablename = (string)row[2];
            //MessageBox.Show(tablename);
            if (tablename != "schools" && tablename != "records")
            {
                databasenames.Add(tablename);
                box.Items.Add(tablename);
            }
        }

        con.Close();

这真的很令人沮丧,我使用了 Visual Studio 安装屏蔽限量版项目来构建我的安装文件,其中包括我的软件的数据库和主要输出。我做错了什么吗?以及如何在另一台机器上正确安装带有数据库的软件而不会出现此错误?

4

2 回答 2

1

这看起来不像连接字符串的问题。我在 Teamcity 中遇到了类似的问题,并且已解决在代理中安装 SQL Server Express 的问题。所以这看起来像新机器需要安装 SQL Server Express 设置。

于 2021-02-05T03:56:18.330 回答
0

我的感觉是关于转义序列。你已经有了@,那你为什么要使用\\

尝试这个。

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;
                    AttachDbFilename="+ttg+"\Datex Inc\Time Table Generator
                    \Database\timetable.mdf;Integrated Security=True");
于 2013-08-31T04:33:27.023 回答