218 lines
7.3 KiB
C#
218 lines
7.3 KiB
C#
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
|
||
{
|
||
/// <summary>
|
||
/// 本地数据库连接
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public static OdbcConnection AnyWhereConn()
|
||
{
|
||
string strConn = "DSN=anysql1;UID=dba;PWD=sql;";
|
||
OdbcConnection Conany = new OdbcConnection(strConn);
|
||
return Conany;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 服务器数据库连接
|
||
/// </summary>
|
||
/// <param name="dbip">数据库IP</param>
|
||
/// <param name="dbport">数据库端口</param>
|
||
/// <param name="conname">数据库服务名</param>
|
||
/// <param name="dbuser">用户名称</param>
|
||
/// <param name="dbpass">用户密码</param>
|
||
/// <returns></returns>
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 执行SQL语句,返回受影响的行数
|
||
/// </summary>
|
||
/// <param name="SQLString">SQL语句</param>
|
||
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);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 本地执行SQL语句并返回DataSet
|
||
/// </summary>
|
||
/// <param name="SelectSql">SQL语句</param>
|
||
/// <returns></returns>
|
||
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);
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 服务器表检查
|
||
/// </summary>
|
||
/// <param name="_OracleConnection">数据库连接符</param>
|
||
/// <param name="sql"></param>
|
||
/// <param name="file_name"></param>
|
||
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;";
|
||
|
||
/// <summary>
|
||
/// 查询本地数据库
|
||
/// </summary>
|
||
/// <param name="SqlString"></param>
|
||
/// <returns></returns>
|
||
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);
|
||
}
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 保存数据
|
||
/// </summary>
|
||
/// <param name="SQLStringList"></param>
|
||
public static void ExecuteSqlTran(List<string> 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();
|
||
}
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 保存数据
|
||
/// </summary>
|
||
/// <param name="SQLStringList"></param>
|
||
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();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|