如何使 ConnectionString 在客户端计算机上工作?

Posted

技术标签:

【中文标题】如何使 ConnectionString 在客户端计算机上工作?【英文标题】:How to make ConnectionString work on client computer? 【发布时间】:2021-01-14 01:44:33 【问题描述】:

我在 Visual Studio 中为管理系统创建了一个设置,并使用了 Microsoft SQL Server 数据库文件,但是当我在用户计算机或另一台计算机上使用它时,当我尝试连接到数据库时收到此消息.有什么问题?

我使用的是 SQL Server 2017 Express。

我的连接字符串可以在客户的 PC 上工作:

@"Data Source=.\SQLEXPRESS01;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|gym.mdf";

我在客户端计算机上安装了 SQL Server 2017 Express,但它不起作用。

有什么问题?

【问题讨论】:

这能回答你的问题吗? Why am I getting “Cannot Connect to Server - A network-related or instance-specific error”? Integrated Security=True 表示以当前用户身份建立连接 - 但该用户在您的数据库的特定副本中是否已知? @hassan,有更新吗?如果您的问题已经解决,您可以点击“✔”将相应的回复标记为答案。 【参考方案1】:

默认情况下,如果您在安装过程中不更改任何设置,SQL Server Express 实例将获得 SQLEXPRESS 实例名称 - 请尝试以下操作:

Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|gym.mdf

(不是SQLEXPRESS01 - 那是不是标准)

【讨论】:

它给了我另一个消息“由于启动用户实例进程失败,无法生成sql server的用户实例,连接将被关闭”如何解决? 如果我是你——我会停止使用AttachDbFileNameUser Instance 的东西——那不过是悲伤。相反:启动 SSMS,并将您的 .mdf附加到 SQL Server Express 实例 - 然后使用逻辑数据库名称引用它 - 类似于 Data Source=.\SQLEXPRESS;Integrated Security=True;database=gym 并完成它 我做到了,我更改了字符串连接,我复制了 gym.mdf 并将其粘贴到另一台计算机到 sqlexpress 的数据中,并向我显示“无法打开登录请求的数据库“gym” , 登录失败, 用户 'lab-khaled\khaled' 登录失败。如果我问的太多,我很抱歉,但我真的需要让它工作,谢谢你顺便说一句【参考方案2】:

你得到的错误意味着服务器不正确。

首先,您可以尝试以下代码来安装ServerName和instanceName。

    var instances = SqlDataSourceEnumerator.Instance.GetDataSources();
    foreach (DataRow instance in instances.AsEnumerable())
    
        Console.WriteLine(instance["ServerName"]);
        Console.WriteLine(instance["InstanceName"]);
    

其次,可以使用下面的connectionstring来连接db文件。

string connstr = @"Data Source=server\\instance;
                          AttachDbFilename=D:\Product.mdf;
                          Integrated Security=True;
                          Connect Timeout=2;";

【讨论】:

以上是关于如何使 ConnectionString 在客户端计算机上工作?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式为 ActiveDirectoryMembershipProvider 设置 connectionString

是否可以(以及如何)在 C# 运行时将 ConnectionString 添加到 app.config?

如何在(App.config)connectionString 中使用应用程序数据

如何使用配置转换删除 ConnectionString

如何修复“ConnectionString 属性尚未初始化”

如何在ConnectionString中加密sql用户名和密码? [关闭]