C#远程连MYSQL数据库服务器

来源:互联网 发布:上别人女朋友感觉知乎 编辑:程序博客网 时间:2024/04/30 04:09

需要这3个DLL

MySql.Data.dll

MySQLDriverCS.dll

Renci.SshNet.dll

-------------------------------------------------------------------

using MySql.Data.MySqlClient;
using MySQLDriverCS;
using Renci.SshNet;

--------------------------------------------------------------------

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;
using System.Configuration;
using System.IO;
using System.Runtime.InteropServices;

using MySql.Data.MySqlClient;
using MySQLDriverCS;
using Renci.SshNet;

using System.Web;
using System.Net;

namespace test
{
    public partial class Form1 : Form
    {
        //嘿嘿,项目上右击,添加引用,在.net选项卡里面,System.Configuration
        public static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;


        byte[] dat = null;
        string b = "";
        string fileName = "";
        string weixin = "";


        public Form1()
        {
            InitializeComponent();


            SSHConnectMySql();
        }


        public void SSHConnectMySql()
        {
            string SSHHost = "110.33.201.103";        // SSH地址,也就是服务器IP地址
            int SSHPort = 22;              // SSH端口,一般默认22
            string SSHUser = "root";           // SSH用户名
            string SSHPassword = "123";           // SSH密码,这里的密码123是登陆服务器密码


            string sqlIPA = "127.0.0.1";// 映射地址  实际上也可以写其它的   Linux上的MySql的my.cnf bind-address 可以设成0.0.0.0 或者不设置
            string sqlHost = "127.0.0.1"; // mysql安装的机器IP 也可以是内网IP 比如:192.168.1.20
            uint sqlport = 3306;        // 数据库端口及映射端口,一般默认3306
            string sqlConn = "Database=shops;Data Source=" + sqlIPA + ";Port=" + sqlport + ";User Id=root;Password=root;CharSet=utf8";//这里的密码root是登陆数据库密码
            string sqlSELECT = "select * from user where uid=248 ";


            PasswordConnectionInfo connectionInfo = new PasswordConnectionInfo(SSHHost, SSHPort, SSHUser, SSHPassword);
            connectionInfo.Timeout = TimeSpan.FromSeconds(30);
            using (var client = new SshClient(connectionInfo))
            {
                try
                {
                    client.Connect();
                    if (!client.IsConnected)
                    {
                        MessageBox.Show("SSH 链接失败");
                    }


                    var portFwdL = new ForwardedPortLocal(sqlIPA, sqlport, sqlHost, sqlport); //映射到本地端口
                    client.AddForwardedPort(portFwdL);
                    portFwdL.Start();
                    if (!client.IsConnected)
                    {
                        MessageBox.Show("端口错误");
                    }


                    MySqlConnection conn = new MySqlConnection(sqlConn);
                    MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
                    myDataAdapter.SelectCommand = new MySqlCommand(sqlSELECT, conn);


                    try
                    {
                        conn.Open();
                        DataSet ds = new DataSet();
                        myDataAdapter.Fill(ds);
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            //dat = (byte[])dr["datFile"];
                            fileName = ds.Tables[0].Rows[0]["cer_avatar"].ToString();


                            weixin = ds.Tables[0].Rows[0]["avatar"].ToString();


                            fileName = "http://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKPoje4X1mKC5vqKhJoamPsnvQxRia3iaWIoDTot7s1bLuZVqTKiaXeP1k22jvxuzGQjMn5vregZ/0";
                           
                            //using System.Web;
                            //using System.Net;
                            Bitmap img = null;
                            HttpWebRequest req;
                            HttpWebResponse res = null;
                            System.Uri httpUrl = new System.Uri(weixin);
                            req = (HttpWebRequest)(WebRequest.Create(httpUrl));
                            req.Timeout = 180000; //设置超时值10秒
                            req.UserAgent = "XXXXX";
                            req.Accept = "XXXXXX";
                            req.Method = "GET";
                            res = (HttpWebResponse)(req.GetResponse());
                            img = new Bitmap(res.GetResponseStream());//获取图片流                
                            //img.Save(@"E:/" + DateTime.Now.ToFileTime().ToString() + ".png");//随机名
                            pictureBox1.Image = new Bitmap(img);
                            //byte[] featureArray = checkAndMarkFace(this.pictureBox1.Image);
                        }
                    }
                    catch (Exception ee)
                    {
                        MessageBox.Show(ee.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }


                    client.Disconnect();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }
}
原创粉丝点击