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();
}
}
}
}
}