c#快速链接oracle,sqlserver,mysql,ssh通道链接数据库

1.oracle数据库连接:

下载Oracle.ManagedDataAccess.dll并引入自己的项目

连接字符串

connectionString=Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=IP地址)(PORT=端口号))(CONNECT_DATA=(SERVICE_NAME=服务名称)));User Id=用户名称;Password=用户密码

数据库连接代码:

/// <summary>
        /// 执行SQL语句,返回影响的记录数
        /// </summary>
        /// <param name="SQLString">SQL语句</param>
        /// <returns>影响的记录数</returns>
        public int ExecuteSql(string SQLString)
        {
            using (OracleConnection connection = new OracleConnection(ConnectionString()))
            {
                using (OracleCommand cmd = new OracleCommand(SQLString, connection))
                {
                        cmd.CommandTimeout = 180;
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        connection.Close();
                        return rows;

                }
            }
        }
        /// <summary>
        /// 执行一条查询返回datatable
        /// </summary>
        /// <param name="SQLString"></param>
        /// <returns></returns>
        public DataTable Queryx(string SQLString)
        {
            using (OracleConnection connection = new OracleConnection(ConnectionString()))
            {
                using (OracleDataAdapter command = new OracleDataAdapter(SQLString, connection))
                {
                        DataSet ds = new DataSet();
                        connection.Open();
                        command.Fill(ds, "ds");
                        connection.Close();
                        return ds.Tables["ds"];
                }
            }
        }

2.sqlserver数据库连接:
引入System.Data.SqlClient到自己的项目中

连接字符串:

server=数据库IP地址,端口;database=数据库名称;User Id=用户名称;Password=用户密码

数据库连接代码:

        /// <summary>
        /// 执行SQL语句,返回影响的记录数
        /// </summary>
        /// <param name="SQLString">SQL语句</param>
        /// <returns>影响的记录数</returns>
        public int ExecuteSql(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString()))
            {
                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                {

                        cmd.CommandTimeout = 180;
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        connection.Close();
                        return rows;

                }
            }
        }
        /// <summary>
        /// 执行一条查询返回datatable
        /// </summary>
        /// <param name="SQLString"></param>
        /// <returns></returns>
        public DataTable Queryx(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString()))
            {
                using (SqlDataAdapter command = new SqlDataAdapter(SQLString, connection))
                {

                        DataSet ds = new DataSet();
                        connection.Open();
                        command.Fill(ds, "ds");
                        connection.Close();
                        return ds.Tables["ds"];

                }
            }
        }

3.mysql数据库连接(以ssh的方式进行连接)

下载 Renci.SshNet.dll 与MySql.Data.dll并引入自己的项目

数据库连接代码:

public int ExecuteSql(string SQLString)

{

int rows = 0;

string SSHHost = "SSH地址"; // SSH地址

int SSHPort = SSH端口; // SSH端口

string SSHUser = "SSH用户名"; // SSH用户名

string SSHPassword = "******"; // SSH密码



string sqlIPA = "127.0.0.1";// 映射地址 实际上也可以写其它的 Linux上的MySql的my.cnf bind-address 可以设成0.0.0.0 或者不设置

string sqlHost = "mysql安装的机器IP"; // mysql安装的机器IP 也可以是内网IP 比如:192.168.1.20

uint sqlport = 数据库端口及映射端口; // 数据库端口及映射端口

string sqlConn = "Database=dxbase;Data Source=" + sqlIPA + ";Port=" + sqlport + ";User Id=dxbase;Password=dxbase;CharSet=utf8";



PasswordConnectionInfo connectionInfo = new PasswordConnectionInfo(SSHHost, SSHPort, SSHUser, SSHPassword);

connectionInfo.Timeout = TimeSpan.FromSeconds(30);

using (var client = new SshClient(connectionInfo))

{

client.Connect();

var portFwdL = new ForwardedPortLocal(sqlIPA, sqlport, sqlHost, sqlport); //映射到本地端口

client.AddForwardedPort(portFwdL);

portFwdL.Start();

using (MySqlConnection connection = new MySqlConnection(sqlConn))

{



using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))

{

try

{

cmd.CommandTimeout = 180;

connection.Open();

rows = cmd.ExecuteNonQuery();

connection.Close();

}

catch (Exception e)

{

}

}

}

client.Disconnect();

}

return rows;

}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

why070809123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值