使用连接字符串localhost\SQLEXPRESS的用户C#登录失败

使用连接字符串localhost\SQLEXPRESS的用户C#登录失败,c#,sql-server,client,connection-string,sqldatasource,C#,Sql Server,Client,Connection String,Sqldatasource,将客户端PC上的应用程序连接到服务器PC(DESKTOP-F419755)上存储的数据库时收到错误消息。我尝试过使用“localhost\SQLEXPRESS”和“.\SQLEXPRESS”,但在尝试打开连接时收到了相同的“用户管理员登录失败…”消息。但是,当我使用“DESKTOP-F419755\SQLEXPRESS”作为连接字符串时,它在客户端PC上运行良好 那么,客户端PC如何在不告诉服务器PC名称的情况下连接到服务器PC的数据库呢 我的完整连接字符串是 “数据源=localhost\SQ

将客户端PC上的应用程序连接到服务器PC(DESKTOP-F419755)上存储的数据库时收到错误消息。我尝试过使用“localhost\SQLEXPRESS”和“.\SQLEXPRESS”,但在尝试打开连接时收到了相同的“用户管理员登录失败…”消息。但是,当我使用“DESKTOP-F419755\SQLEXPRESS”作为连接字符串时,它在客户端PC上运行良好

那么,客户端PC如何在不告诉服务器PC名称的情况下连接到服务器PC的数据库呢

我的完整连接字符串是 “数据源=localhost\SQLEXPRESS;初始目录=Data;用户ID=admin;密码=adminPass”

注: 当然,我可以在PC服务器上使用“localhost\SQLEXPRESS”、“SQLEXPRESS”和“DESKTOP-F419755\SQLEXPRESS”

那么,客户端PC如何能够连接到服务器PC的数据库而不告诉 服务器PC名称

我假设您希望以某种方式在配置文件中屏蔽主机的标识,无论出于何种原因。您可以直接在连接字符串中使用IP地址,也可以在文件C:\Windows\System32\Drivers\etc\hosts中添加主机条目

DESKTOP-F419755服务器主机

和使用:

数据源=serverhost\SQLEXPRESS;初始目录=数据;使用者 ID=管理员;密码=adminPass

配置文件是否向用户公开?你到底想完成什么

如果您的目标是简单地隐藏机器名,那么这将实现,尽管相对来说是半热的。如果您主要关心的是安全性,那么您可以从代码中的某个地方提取主机名,并在代码中生成连接对象,因此不需要存储在配置文件中的连接字符串


这一切都取决于您在这里要完成的任务,您也可以加密配置文件中的信息,或者将主机名完全存储在其他地方(注册表等)

无法在客户机-服务器位置内自动执行连接字符串。但是,您可以使用其他方法存储要更改的连接信息,而无需重新安装应用程序

  • 在具有连接字符串的位置使用文本文件。确保出于安全目的对信息进行了加密
    希望你得到答案

    你是说局域网连接吗?你有问题吗?它埋在什么地方了吗?你说在某一点上它不连接,然后你说它连接。什么是你有困难的时间吗?它告诉你,登录失败的用户管理员。是否有管理员用户,sql server是否处于混合模式?如果未处于混合模式(sql express默认值仅限windows auth),则无法使用管理员用户。您还说您正试图通过网络连接到另一台电脑。请确保目标机器上的SQL server端口已打开,并使用语法{MACHINENAME}\SQLXPRESS