[C#将通过远程桌面(或其他)在本地运行的WinForm App连接到数据库

问题描述 投票:0回答:1

编辑

RDP只是我当前的操作方式,如果还有另一种方法可以连接到不同环境中的数据库,我将执行此操作。理想情况下,我希望它像可执行文件在RDP环境中一样连接到数据库,并且不显示通过其他环境连接到数据库的指示。

编辑2

我也尝试过添加第二个连接字符串,然后打开它,然后立即使用我当前的连接字符串,这没有用。


我有一个连接到数据库的C#Win Forms应用程序,除了我需要将RDP导入正确的环境并从那里运行可执行文件之外,这个工作正常。

是否有可能在应用程序内部进行RDP连接,然后连接到数据库而不必在RDP内部具有可执行文件。

[我试图使用我发现的here的MSTSCLib库建立连接字符串,但是无论如何这在代码级别上均不起作用。

代码:

    private void rdpConnect_Click(object sender, EventArgs e)
    {
        MSTerminalServiceControl1.Server = rdpServer.Text;
        MSTerminalServiceControl1.UserName = rdpUserName.Text;
        IMsTscNonScriptable secured = (IMsTscNonScriptable)MSTerminalServiceControl1.GetOcx();
        secured.ClearTextPassword = rdpPassword.Text;
        MSTerminalServiceControl1.Connect();
    }

    private void rdpDisconnect_Click(object sender, EventArgs e)
    {
        MSTerminalServiceControl1.Disconnect();
    }

当前路径:

enter image description here

所需路径:

enter image description here

c# winforms networking database-connection rdp
1个回答
0
投票

好像您没有对ActiveX控件的引用。

在工具箱中,选择COM组件:Microsoft RDP控件-版本x

这里的版本很重要,它应该与已安装的RDP版本匹配,一旦在工具箱中添加了该版本,就将其放到表单上,如果版本不匹配,则会引发错误。我要说的是从最新版本的控件开始,然后向下直到您能够成功将其添加到表单中为止。您代码中的MSTerminalServiceControl1实际上是您应该在表单上放置的控件的名称。

© www.soinside.com 2019 - 2024. All rights reserved.