480 lines
9.8 KiB
C#
480 lines
9.8 KiB
C#
using HelperDB;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.Data.SqlClient;
|
||
using System.Windows.Forms;
|
||
|
||
namespace AIMSExtension
|
||
{
|
||
public class GPDBConn
|
||
{
|
||
private static string _staticConnectionString;
|
||
|
||
private string _dynamicConnectionString;
|
||
|
||
private ErrorInfo _errorInfo = new ErrorInfo();
|
||
|
||
private SqlConnection _connection;
|
||
|
||
private SqlTransaction _trans = null;
|
||
|
||
private int _commandTimeout = 180;
|
||
|
||
private SqlCommand _command;
|
||
|
||
private SqlDataAdapter _dataAdapter;
|
||
|
||
public string StaticConnectionString
|
||
{
|
||
get
|
||
{
|
||
bool flag = !string.IsNullOrEmpty(GPDBConn._staticConnectionString);
|
||
string staticConnectionString;
|
||
if (flag)
|
||
{
|
||
staticConnectionString = GPDBConn._staticConnectionString;
|
||
}
|
||
else
|
||
{
|
||
this.InitConn();
|
||
staticConnectionString = GPDBConn._staticConnectionString;
|
||
}
|
||
return staticConnectionString;
|
||
}
|
||
set
|
||
{
|
||
GPDBConn._staticConnectionString = value;
|
||
}
|
||
}
|
||
|
||
public string ConnectionString
|
||
{
|
||
get
|
||
{
|
||
bool flag = !string.IsNullOrEmpty(this._dynamicConnectionString);
|
||
string result;
|
||
if (flag)
|
||
{
|
||
result = this._dynamicConnectionString;
|
||
}
|
||
else
|
||
{
|
||
bool flag2 = !string.IsNullOrEmpty(GPDBConn._staticConnectionString);
|
||
if (flag2)
|
||
{
|
||
result = GPDBConn._staticConnectionString;
|
||
}
|
||
else
|
||
{
|
||
this.InitConn();
|
||
result = GPDBConn._staticConnectionString;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
set
|
||
{
|
||
this._dynamicConnectionString = value;
|
||
bool flag = string.IsNullOrEmpty(GPDBConn._staticConnectionString);
|
||
if (flag)
|
||
{
|
||
GPDBConn._staticConnectionString = value;
|
||
}
|
||
}
|
||
}
|
||
|
||
public ErrorInfo Error
|
||
{
|
||
get
|
||
{
|
||
bool flag = this._errorInfo.Number == 0;
|
||
if (flag)
|
||
{
|
||
this._errorInfo.Message = "";
|
||
this._errorInfo.Source = "";
|
||
}
|
||
return this._errorInfo;
|
||
}
|
||
}
|
||
|
||
public SqlConnection Connection
|
||
{
|
||
get
|
||
{
|
||
bool flag = this._connection == null;
|
||
if (flag)
|
||
{
|
||
this._connection = this.GetConnection("");
|
||
}
|
||
return this._connection;
|
||
}
|
||
}
|
||
|
||
public SqlTransaction Transaction
|
||
{
|
||
get
|
||
{
|
||
return this._trans;
|
||
}
|
||
set
|
||
{
|
||
bool flag = value == null;
|
||
if (flag)
|
||
{
|
||
this._errorInfo.Number = 10007;
|
||
this._errorInfo.Message = "参数错误。";
|
||
this._errorInfo.Source = "Set Transaction Property";
|
||
throw new Exception("Set Transaction Property: 参数错误。");
|
||
}
|
||
bool flag2 = this._trans != null;
|
||
if (flag2)
|
||
{
|
||
this._errorInfo.Number = 10002;
|
||
this._errorInfo.Message = "已经开始事物。";
|
||
this._errorInfo.Source = "Set Transaction Property";
|
||
throw new Exception("Set Transaction Property:已经开始事物。");
|
||
}
|
||
this._trans = value;
|
||
}
|
||
}
|
||
|
||
public int CommandTimeout
|
||
{
|
||
get
|
||
{
|
||
return this._commandTimeout;
|
||
}
|
||
set
|
||
{
|
||
this._commandTimeout = value;
|
||
}
|
||
}
|
||
|
||
public SqlCommand Command
|
||
{
|
||
get
|
||
{
|
||
bool flag = this._command == null;
|
||
if (flag)
|
||
{
|
||
this._command = this.Connection.CreateCommand();
|
||
this._command.CommandType = CommandType.Text;
|
||
this._command.CommandTimeout = this._commandTimeout;
|
||
this.OpenConn(null);
|
||
}
|
||
this._command.Transaction = this._trans;
|
||
return this._command;
|
||
}
|
||
set
|
||
{
|
||
this._command = value;
|
||
}
|
||
}
|
||
|
||
public SqlDataAdapter DataAdapter
|
||
{
|
||
get
|
||
{
|
||
bool flag = this._dataAdapter == null;
|
||
if (flag)
|
||
{
|
||
this._dataAdapter = new SqlDataAdapter("", this.Connection);
|
||
}
|
||
return this._dataAdapter;
|
||
}
|
||
set
|
||
{
|
||
this._dataAdapter = value;
|
||
}
|
||
}
|
||
|
||
public bool IsTransaction
|
||
{
|
||
get
|
||
{
|
||
return this._trans != null;
|
||
}
|
||
}
|
||
|
||
public GPDBConn()
|
||
{
|
||
this.InitConn();
|
||
}
|
||
|
||
public GPDBConn(string connectString)
|
||
{
|
||
bool flag = !string.IsNullOrEmpty(connectString);
|
||
if (flag)
|
||
{
|
||
this.ConnectionString = connectString;
|
||
}
|
||
else
|
||
{
|
||
this.InitConn();
|
||
}
|
||
}
|
||
|
||
private void InitConn()
|
||
{
|
||
bool flag = string.IsNullOrEmpty(GPDBConn._staticConnectionString);
|
||
if (flag)
|
||
{
|
||
GPDBConn._staticConnectionString = new XmlUse(Application.StartupPath + "\\AIMS.xml").GetNode("ConnectionString")[0].ToString();
|
||
}
|
||
}
|
||
|
||
|
||
public SqlCommand CreateCommand()
|
||
{
|
||
SqlCommand sqlCommand = this.Connection.CreateCommand();
|
||
sqlCommand.CommandTimeout = this._commandTimeout;
|
||
bool flag = this._trans != null;
|
||
if (flag)
|
||
{
|
||
sqlCommand.Transaction = this._trans;
|
||
}
|
||
this.OpenConn(null);
|
||
return sqlCommand;
|
||
}
|
||
|
||
public SqlConnection GetConnection(string connString = "")
|
||
{
|
||
SqlConnection sqlConnection = new SqlConnection();
|
||
this._errorInfo.Number = 0;
|
||
bool flag = string.IsNullOrEmpty(connString);
|
||
if (flag)
|
||
{
|
||
connString = this.ConnectionString;
|
||
bool flag2 = string.IsNullOrEmpty(connString);
|
||
if (flag2)
|
||
{
|
||
this._errorInfo.Number = 10000;
|
||
this._errorInfo.Message = "没有设置连接字符串。";
|
||
this._errorInfo.Source = "GetConnection";
|
||
throw new Exception(this._errorInfo.Message);
|
||
}
|
||
}
|
||
sqlConnection.ConnectionString = connString;
|
||
return sqlConnection;
|
||
}
|
||
|
||
public bool OpenConn(SqlConnection conn = null)
|
||
{
|
||
this._errorInfo.Number = 0;
|
||
bool flag = false;
|
||
bool flag2 = conn == null;
|
||
if (flag2)
|
||
{
|
||
conn = this.Connection;
|
||
bool flag3 = conn == null;
|
||
if (flag3)
|
||
{
|
||
this._errorInfo.Number = 10001;
|
||
this._errorInfo.Message = "参数错误。";
|
||
this._errorInfo.Source = "OpenConn";
|
||
throw new Exception("OpenConn:参数错误。");
|
||
}
|
||
}
|
||
bool flag4 = conn.State == ConnectionState.Open;
|
||
bool result;
|
||
if (flag4)
|
||
{
|
||
result = true;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
conn.Open();
|
||
bool flag5 = conn.State == ConnectionState.Open;
|
||
if (flag5)
|
||
{
|
||
this._command = this._connection.CreateCommand();
|
||
flag = true;
|
||
}
|
||
this._command.Transaction = this._trans;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
this._errorInfo.Number = 10020;
|
||
this._errorInfo.Message = ex.Message;
|
||
this._errorInfo.Source = "OpenConn";
|
||
}
|
||
result = flag;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
public bool CloseConn()
|
||
{
|
||
bool flag = this._connection == null;
|
||
if (flag)
|
||
{
|
||
this._errorInfo.Number = 10005;
|
||
this._errorInfo.Message = "没有建立连接";
|
||
this._errorInfo.Source = "CloseConn";
|
||
throw new Exception("CloseConn:没有建立连接。");
|
||
}
|
||
bool flag2 = this._connection.State == ConnectionState.Open;
|
||
bool result;
|
||
if (flag2)
|
||
{
|
||
try
|
||
{
|
||
this._connection.Close();
|
||
}
|
||
catch (Exception )
|
||
{
|
||
//GPLog.Write(string.Format("CloseConn Error: {0}", ex.Message));
|
||
}
|
||
result = (this._connection.State == ConnectionState.Closed);
|
||
}
|
||
else
|
||
{
|
||
result = true;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
public SqlTransaction BeginTransaction()
|
||
{
|
||
this._errorInfo.Number = 0;
|
||
bool flag = this._trans != null;
|
||
if (flag)
|
||
{
|
||
this._errorInfo.Number = 10002;
|
||
this._errorInfo.Message = "已经开始事物。";
|
||
this._errorInfo.Source = "BeginTransaction";
|
||
throw new Exception("BeginTransaction:已经开始事物。");
|
||
}
|
||
bool flag2 = this._connection == null;
|
||
if (flag2)
|
||
{
|
||
this._connection = this.GetConnection("");
|
||
}
|
||
this.OpenConn(null);
|
||
this._trans = this._connection.BeginTransaction();
|
||
this._command.Transaction = this._trans;
|
||
return this._trans;
|
||
}
|
||
|
||
public bool Commit()
|
||
{
|
||
this._errorInfo.Number = 0;
|
||
bool flag = this._trans == null;
|
||
if (flag)
|
||
{
|
||
this._errorInfo.Number = 10003;
|
||
this._errorInfo.Message = "没有开始事物。";
|
||
this._errorInfo.Source = "Commit";
|
||
throw new Exception("Commit:没有开始事物。");
|
||
}
|
||
this._trans.Commit();
|
||
this._trans = null;
|
||
return true;
|
||
}
|
||
|
||
public bool RollBack()
|
||
{
|
||
this._errorInfo.Number = 0;
|
||
bool flag = this._trans == null;
|
||
bool result;
|
||
if (flag)
|
||
{
|
||
this._errorInfo.Number = 10004;
|
||
this._errorInfo.Message = "没有开始事物。";
|
||
this._errorInfo.Source = "RollBack";
|
||
result = false;
|
||
}
|
||
else
|
||
{
|
||
this._trans.Rollback();
|
||
this._trans = null;
|
||
result = true;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
public int Execute(string sql)
|
||
{
|
||
this.OpenConn(null);
|
||
SqlCommand command = this.Command;
|
||
bool flag = command.Parameters.Count > 0;
|
||
if (flag)
|
||
{
|
||
command.Parameters.Clear();
|
||
}
|
||
this._command.CommandText = sql;
|
||
return this._command.ExecuteNonQuery();
|
||
}
|
||
|
||
public int Execute(string sql, SqlParameter[] parameters)
|
||
{
|
||
this.OpenConn(null);
|
||
SqlCommand command = this.Command;
|
||
bool flag = command.Parameters.Count > 0;
|
||
if (flag)
|
||
{
|
||
command.Parameters.Clear();
|
||
}
|
||
this._command.CommandText = sql;
|
||
this._command.Parameters.AddRange(parameters);
|
||
int result = this._command.ExecuteNonQuery();
|
||
this._command.Parameters.Clear();
|
||
return result;
|
||
}
|
||
|
||
public int Execute(List<string> list)
|
||
{
|
||
this.OpenConn(null);
|
||
SqlCommand command = this.Command;
|
||
bool flag = command.Parameters.Count > 0;
|
||
if (flag)
|
||
{
|
||
command.Parameters.Clear();
|
||
}
|
||
int num = 0;
|
||
foreach (string current in list)
|
||
{
|
||
this._command.CommandText = current;
|
||
num += this._command.ExecuteNonQuery();
|
||
}
|
||
return num;
|
||
}
|
||
|
||
public int Execute(string[] sqlArray)
|
||
{
|
||
this.OpenConn(null);
|
||
SqlCommand command = this.Command;
|
||
bool flag = command.Parameters.Count > 0;
|
||
if (flag)
|
||
{
|
||
command.Parameters.Clear();
|
||
}
|
||
int num = 0;
|
||
for (int i = 0; i < sqlArray.Length; i++)
|
||
{
|
||
string commandText = sqlArray[i];
|
||
this._command.CommandText = commandText;
|
||
num += this._command.ExecuteNonQuery();
|
||
}
|
||
return num;
|
||
}
|
||
|
||
public object ExecuteScalar(string sql)
|
||
{
|
||
this.OpenConn(null);
|
||
SqlCommand command = this.Command;
|
||
bool flag = command.Parameters.Count > 0;
|
||
if (flag)
|
||
{
|
||
command.Parameters.Clear();
|
||
}
|
||
command.CommandText = sql;
|
||
return command.ExecuteScalar();
|
||
}
|
||
}
|
||
}
|