using System; using System.Collections.Generic; using System.Data; using System.Data.Odbc; using System.IO; using System.Linq; using System.Text; using Oracle.ManagedDataAccess.Client; namespace DataUpdate { public class DBHelper { /// /// 本地数据库连接 /// /// public static OdbcConnection AnyWhereConn() { string strConn = "DSN=anysql1;UID=dba;PWD=sql;"; OdbcConnection Conany = new OdbcConnection(strConn); return Conany; } /// /// 服务器数据库连接 /// /// 数据库IP /// 数据库端口 /// 数据库服务名 /// 用户名称 /// 用户密码 /// public static OracleConnection OracleDBConn(string dbip, string dbport, string conname, string dbuser, string dbpass) { string connString = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = " + dbip + ")(PORT = " + dbport + "))(CONNECT_DATA = (SERVICE_NAME = " + conname + "))); User Id = " + dbuser + "; Password=" + dbpass + ";"; OracleConnection conn = new OracleConnection(connString); return conn; } /// /// 执行SQL语句,返回受影响的行数 /// /// SQL语句 public static int ExcuteSql(string SQLString) { using (OdbcConnection conany = AnyWhereConn()) { using (OdbcCommand cmd = new OdbcCommand(SQLString, conany)) try { conany.Open(); int rows = cmd.ExecuteNonQuery(); conany.Close(); return rows; } catch (OdbcException ex) { throw new Exception(ex.Message); } } } /// /// 本地执行SQL语句并返回DataSet /// /// SQL语句 /// public static DataSet ExecuteDataSet(string SelectSql) { using (OdbcConnection conany = AnyWhereConn()) { DataSet _DataSet = new DataSet(); try { OdbcDataAdapter _OdbcDataAdapter = new OdbcDataAdapter(SelectSql, conany); _OdbcDataAdapter.Fill(_DataSet); return _DataSet; } catch (Exception ex) { throw new Exception(ex.Message); } } } /// /// 服务器表检查 /// /// 数据库连接符 /// /// public static void CheckDataTable(OracleConnection _OracleConnection, string sql, string file_name) { try { _OracleConnection.Open(); OracleCommand COMMODITCom = new OracleCommand(sql, _OracleConnection); COMMODITCom.ExecuteNonQuery(); } catch (Exception ex) { if (File.Exists(file_name)) { string WriteTxt = File.ReadAllText(file_name, Encoding.Default); string[] StringSql = WriteTxt.Replace("\r", "").Split('/'); foreach (var a in WriteTxt.Replace("\r", "").Split('/')) { OracleCommand cmd = new OracleCommand(a, _OracleConnection); cmd.ExecuteNonQuery(); } File.Delete(file_name); } } } private static string connstring = "DSN=anysql1;UID=dba;PWD=sql;"; /// /// 查询本地数据库 /// /// /// public static DataSet QueryOdbc(string SqlString) { using (OdbcConnection conn = new OdbcConnection(connstring)) { OdbcCommand cmd = new OdbcCommand(SqlString, conn); try { conn.Open(); OdbcDataAdapter adp = new OdbcDataAdapter(cmd); DataSet ds = new DataSet(); adp.Fill(ds); conn.Close(); return ds; } catch (Exception ex) { throw new Exception(ex.Message); } } } /// /// 保存数据 /// /// public static void ExecuteSqlTran(List SQLStringList) { using (OdbcConnection conn = new OdbcConnection(connstring)) { conn.Open(); OdbcCommand cmd = new OdbcCommand(); cmd.Connection = conn; OdbcTransaction tx = conn.BeginTransaction(); cmd.Transaction = tx; try { for (int n = 0; n < SQLStringList.Count; n++) { string strsql = SQLStringList[n].ToString(); if (strsql.Trim().Length > 1) { cmd.CommandText = strsql; cmd.ExecuteNonQuery(); } } tx.Commit(); } catch (Exception E) { tx.Rollback(); throw new Exception(E.Message); } finally { conn.Close(); } } } /// /// 保存数据 /// /// public static void ExecuteSqlTran(string SQLString) { using (OdbcConnection conn = new OdbcConnection(connstring)) { conn.Open(); OdbcCommand cmd = new OdbcCommand(); cmd.Connection = conn; OdbcTransaction tx = conn.BeginTransaction(); cmd.Transaction = tx; try { if (SQLString.Trim().Length > 1) { cmd.CommandText = SQLString; cmd.ExecuteNonQuery(); } tx.Commit(); } catch (Exception E) { tx.Rollback(); throw new Exception(E.Message); } finally { conn.Close(); } } } } }