/// <summary>
/// SQL 数据库访问类
/// </summary>
public class DBHelperSQL
{
/// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name="Item"></param>
/// <returns>影响的记录数</returns>
public static int ExecuteNonQuery(string ConnectionString, DBCmd Item)
{
using (SqlConnection cn = new SqlConnection(ConnectionString))
{
SqlCommand cmd = new SqlCommand(Item.CmdText, cn);
cmd.CommandType = Item.CmdType;
for (int i = 0; i < Item.Params.Count; i++)
{
cmd.Parameters.Add(Item.Params[i]);
}
cn.Open();
return cmd.ExecuteNonQuery();
}
}
/// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name="ConnectionString"></param>
/// <param name="Items"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string ConnectionString, List<DBCmd> Items)
{
int RowCount = 0;
using (SqlConnection cn = new SqlConnection(ConnectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cn.Open();
SqlTransaction tran = cn.BeginTransaction();
cmd.Transaction = tran;
try
{
for (int i = 0; i < Items.Count; i++)
{
cmd.CommandText = Items[i].CmdText;
cmd.CommandType = Items[i].CmdType;
cmd.Parameters.Clear();
for (int j = 0; j < Items[i].Params.Count; j++)
{
cmd.Parameters.Add(Items[j].Params[j]);
}
RowCount = cmd.ExecuteNonQuery();
}
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw new Exception(ex.Message);
}
finally
{
cmd.Dispose();
cn.Close();
}
}
return RowCount;
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteNonQuery(string ConnectionString, string strSQL)
{
DBCmd Item = new DBCmd(strSQL);
return ExecuteNonQuery(ConnectionString, Item);
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="sqlList">多条SQL语句</param>
public static int ExecuteNonQuery(string ConnectionString, List<string> sqlList)
{
List<DBCmd> items = new List<DBCmd>();
for (int i = 0; i < sqlList.Count; i++)
{
items.Add(new DBCmd(sqlList[i]));
}
return ExecuteNonQuery(ConnectionString, items);
}
/// <summary>
/// 直接执行存储过程
/// </summary>
/// <param name="ConnectionString"></param>
/// <param name="strProc"></param>
/// <param name="Params"></param>
/// <returns></returns>
private static int ExecuteNonQueryProcedure(string ConnectionString, string strProc, List<IDataParameter> Params)
{
DBCmd item = new DBCmd(strProc, Params);
item.CmdType = CommandType.StoredProcedure;
return ExecuteNonQuery(ConnectionString, item);
}
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="strSQL">计算查询结果语句</param>
/// <returns>查询结果(object)</returns>
public static object ExecuteScalar(string ConnectionString, string strSQL)
{
using (SqlConnection cn = new SqlConnection(ConnectionString))
{
SqlCommand cmd = new SqlCommand(strSQL, cn);
cn.Open();
return cmd.ExecuteScalar();
}
}
/// <summary>
/// 执行SQL语句,返回数据集
/// </summary>
/// <param name="ConnectionString"></param>
/// <param name="item"></param>
/// <returns></returns>
public static DataSet ExecuteQuery(string ConnectionString, DBCmd item)
{
using (SqlConnection cn = new SqlConnection(ConnectionString))
{
SqlCommand cmd = new SqlCommand(item.CmdText, cn);
for (int i = 0; i < item.Params.Count; i++)
{
cmd.Parameters.Add(item.Params[i]);
}
cn.Open();
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
dr.Fill(ds);
cn.Close();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
dr.Dispose();
cmd.Dispose();
}
return ds;
}
}
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="strSQL">计算查询结果语句</param>
/// <returns>查询结果(DataSet)</returns>
public static DataSet ExecuteQuery(string ConnectionString, string strSQL)
{
DBCmd item = new DBCmd(strSQL);
return ExecuteQuery(ConnectionString, item);
}
}