using System;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
namespace DBUtility
{
/// <summary>
/// 数据访问基础类(基于Oracle)
/// </summary>
public abstract class DbHelperSql
{
//数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.
//public static string connectionString = "连接字符串";
public DbHelperSql()
{
}
public static readonly string conlodb = System.Configuration.ConfigurationManager.ConnectionStrings["db16lodb"].ToString();
public static readonly string conaval = System.Configuration.ConfigurationManager.ConnectionStrings["db16aval"].ToString();
public static readonly string conhis = System.Configuration.ConfigurationManager.ConnectionStrings["db08his"].ToString();
public static readonly string conbfmdb = System.Configuration.ConfigurationManager.ConnectionStrings["db02bfmdb"].ToString();
#region 公用方法
public static int GetMaxID(string connectionString, string FieldName, string TableName)
{
string strsql = "select max(" + FieldName + ")+1 from " + TableName;
object obj = GetSingle(connectionString, strsql);
if (obj == null)
{
return 1;
}
else
{
return int.Parse(obj.ToString());
}
}
public static bool Exists(string connectionString, string strSql)
{
object obj = GetSingle(connectionString, strSql);
int cmdresult;
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
cmdresult = 0;
}
else
{
cmdresult = int.Parse(obj.ToString());
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
#endregion
#region 执行简单SQL语句
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string conn, string SQLString)
{
using (SqlConnection connection = new SqlConnection(conn))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (SqlException E)
{
connection.Close();
throw new Exception(E.Message);
}
}
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static void ExecuteSqlTran(string connectionString, ArrayList SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction 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 (SqlException E)
{
tx.Rollback(