2025-03-28 09:49:56 +08:00

218 lines
7.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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