using FangYar.Model.TBL; using System; using System.Collections.Generic; using System.Data; using System.Data.Odbc; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace FangYar.Common { /// /// clickhouse数据库连接查询帮助类 /// public class ClickhouseHelp { /// /// Clickhouse数据库连接 /// private static string connectionString = @"DSN=clickhouse.xfzn365.cn"; /// /// 执行SQL语句,返回影响的记录数 /// /// SQL语句 /// 影响的记录数 public static int ExecuteSql(string SQLString) { using (OdbcConnection connection = new OdbcConnection(connectionString)) { using (OdbcCommand cmd = new OdbcCommand(SQLString, connection)) { try { connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; } catch (Exception E) { connection.Close(); throw new Exception(E.Message); } } } } /// /// 执行SQL语句,返回影响的记录数 /// /// SQL语句 /// 影响的记录数 public static int ExecuteSql(string SQLString, params OdbcParameter[] cmdParms) { using (OdbcConnection connection = new OdbcConnection(connectionString)) { using (OdbcCommand cmd = new OdbcCommand()) { try { PrepareCommand(cmd, connection, null, SQLString, cmdParms); int rows = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return rows; } catch (Exception E) { throw new Exception(E.Message); } } } } /// /// 替换sql语句中的参数占位为真实的参数值 /// /// MySqlCommand对象 /// 数据库连接对象 /// 事务对象 /// sql语句 /// 参数值数组 private static void PrepareCommand(OdbcCommand cmd, OdbcConnection conn, OdbcTransaction trans, string cmdText, OdbcParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = CommandType.Text;//cmdType; if (cmdParms != null) { foreach (OdbcParameter parm in cmdParms) cmd.Parameters.Add(parm); } } } }