C# 将连接字符串从linqpad传递到自定义库会导致登录失败

C# 将连接字符串从linqpad传递到自定义库会导致登录失败,c#,dll,connection-string,linqpad,C#,Dll,Connection String,Linqpad,我正在编写一个linqpad脚本,用于将数据从excel文件迁移到db中。导入数据后,需要在多个数据库之间进行同步。这是在dll中完成的,因为该功能在其他地方使用 我的问题是,当从linqpad向我的dll传递连接字符串时,我收到用户“xxxxxxx”登录失败的消息。据我所知,这是因为SQL身份验证的密码没有在连接字符串中传递。是否有任何方法使linqpad在连接字符串中包含密码: SyncController syncController = new SyncController(this.C

我正在编写一个linqpad脚本,用于将数据从excel文件迁移到db中。导入数据后,需要在多个数据库之间进行同步。这是在dll中完成的,因为该功能在其他地方使用

我的问题是,当从linqpad向我的dll传递连接字符串时,我收到用户“xxxxxxx”登录失败的消息。据我所知,这是因为SQL身份验证的密码没有在连接字符串中传递。是否有任何方法使linqpad在连接字符串中包含密码:

SyncController syncController = new SyncController(this.Connection.ConnectionString);
syncController.SyncAll();
Persist Security Info=true

如果有可能的话,我希望避免在运行此程序时强制运行此程序的人员更新密码变量。谢谢。

你说得对:打开连接后,密码将从连接字符串中消失。这是一个示例,并非特定于LINQPad

有两种变通办法。首先,在查询任何数据之前,可以将连接字符串捕获为LINQPad脚本中的第一行:

string cxString = this.Connection.ConnectionString;
另一种解决方法是将以下文本添加到连接字符串中:

SyncController syncController = new SyncController(this.Connection.ConnectionString);
syncController.SyncAll();
Persist Security Info=true

要在LINQPad中执行此操作,请右键单击连接并选择属性。单击“高级”,并在提供的框中输入额外的连接字符串文本。

您应该查看我认为您不应该将Linqpad用于其他人仍将运行的脚本。创建一个小的自定义exe,他们可以在其中输入密码。完美答案谢谢。在我的脚本的第一行中得到了连接字符串,这完全解决了我的问题。谢谢