我得到了一个链接,可以使用这个库通过 SSH 连接到使用 C# 的 MySQL 数据库进行连接。
这是该库的链接,因为您不需要手动打开 SSH 通道,很多人会发现这很有趣。
这是一个非常详细的库,有很多功能,但我想做的很简单。每次我想写入数据库时,我只想打开一个 SSH 通道。
在搜索提供的源代码时,我想到了可以在TestSshCommand.cs中找到的这部分代码,我想我可以将这部分用于我的连接,但我需要你的帮助才能让它像我一样工作我的连接字符串我不知道如何连接所有这些。
代码:
public void Test_Execute_SingleCommand()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
var result = ExecuteTestCommand(client);
client.Disconnect();
Assert.IsTrue(result);
}
我连接到非 SSH 通道的代码是:
con.ConnectionString = ConfigurationManager.ConnectionStrings["Con2"].ConnectionString;
con.Open();
cmd = new MySqlCommand("SELECT COUNT(*) FROM " + ConfigSettings.ReadSetting("main"), con);
//...... more of the code
那么如何将这段代码与上面的代码结合起来,以便它可以首先打开一个 SSH 通道,然后执行我的查询呢?
我需要将我的代码放在连接和断开功能中吗?
另一个人认为我在引用中添加了.dll文件,我必须说所有导入都不起作用。所以有人可以下载这个库并尝试这个简单的代码,看看你的项目是否有参考,这样每个人(很多人)都可以为他们未来的项目找到一个可行的解决方案吗?
编辑:
这是我稍后尝试做的代码。我的 SSH 连接现在只需将这两者结合起来即可工作。
问题是我需要在我的电脑上本地拥有一个数据库并且需要连接到服务器。所以端口转发不会像论坛上所说的那样,当mysql已经有端口可以运行时我不能转发端口
using (var client = new SshClient("cpanel****", "******", "******"))
{
client.Connect();
con = new MySqlConnection(GetConnectionString());
con.Open();
cmd = new MySqlCommand(String.Format("insert into {0} values (null, ?Parname , ?Parname2, ?Parname3, ?Parname4, ?Parname5, ?Parname6, ?Parname7);", ConfigSettings.ReadSetting("main")), con);
cmd.Parameters.Add("?Parname", MySqlDbType.Double).Value = Math.Round(deciLat, 5);
// ... more parameters
cmd.ExecuteNonQuery();
client.Disconnect();
}