【发布时间】:2012-06-04 12:51:54
【问题描述】:
我得到了一个链接,可以使用这个库通过 SSH 连接到使用 C# 的 MySQL 数据库。
这里是库的LINK,很多人会觉得这很有趣,因为您不需要手动打开 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 通道然后执行我的查询呢?
我需要将我的代码放在 connect 和 disconnect 函数中吗?
还有人认为我在引用中添加了 .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();
}
【问题讨论】:
-
您可能应该使用库将远程转发到本地端口并在您的连接字符串中使用它。
标签: c# mysql database ssh connection-string