using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Reflection;
using System.Threading;
using System.Windows.Forms;
namespace AutoUpdateTool
{
public static class DBHelper
{
private static readonly string _ConnectionString = new XmlOperator(Application.StartupPath + "\\AIMS.xml").GetNode("ConnectionString")[0].ToString();
///
/// 执行sql操作(增、删、改)
///
/// sql语句
/// 执行的记录数
public static int ExecNonQuery(string sql)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = sql;
return cmd.ExecuteNonQuery();
}
}
}
///
/// 执行sql操作(增、删、改),以参数方式传值
///
/// sql语句
/// 参数数组
/// 执行的记录数
public static int ExecNonQuery(string sql, params SqlParameter[] values)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = sql;
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
}
}
}
///
/// 执行sql查询,得到单个值
///
/// 得到单个值的sql查询语句
/// 单个值对象
public static object ExecuteScalar(string safeSql)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = safeSql;
return cmd.ExecuteScalar();
}
}
}
///
/// 执行sql查询,得到单个值,以参数方式传值
///
/// 得到单个值的sql查询语句
/// 参数数组
/// 单个值对象
public static object ExecuteScalar(string safeSql, params SqlParameter[] values)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = safeSql;
cmd.Parameters.AddRange(values);
return cmd.ExecuteScalar();
}
}
}
/////
///// 执行sql查询,得到一个DataReader对象
/////
///// sql查询语句
///// DataReader对象
//public static SqlDataReader GetDataReader(string sql)
//{
// using (SqlConnection conn = new SqlConnection(_ConnectionString))
// {
// if (conn.State != ConnectionState.Open)
// conn.Open();
// SqlCommand cmd = new SqlCommand(sql, conn);
// SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
// return reader;
// }
//}
///
/// 执行sql查询,得到一个DataReader对象,以参数方式传值
///
/// sql查询语句
/// 参数数组
/// DataReader对象
public static SqlDataReader GetDataReader(string sql, params SqlParameter[] values)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
}
///
/// 执行sql查询,得到一个DataTable对象
///
/// sql查询语句
/// DataTable
public static DataTable GetDataTable(string sql)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
}
///
/// 执行sql查询,得到一个DataTable对象,以参数方式传值
///
/// sql查询语句
/// 参数数组
/// DataTable
public static DataTable GetDataTable(string sql, params SqlParameter[] values)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, conn);
if (values != null)
cmd.Parameters.AddRange(values);
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
da.Fill(ds);
}
catch (Exception)
{
}
return ds.Tables[0];
}
}
///
/// 执行sql查询,得到一个DataSet对象
///
/// sql查询语句
/// DataSet
public static DataSet GetDataSet(string sql)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
da.Fill(ds);
}
catch (Exception)
{
}
return ds;
}
}
///
/// 执行sql查询,得到一个DataSet对象,以参数方式传值
///
/// sql查询语句
/// 参数数组
/// DataSet
public static DataSet GetDataSet(string sql, params SqlParameter[] values)
{
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, conn);
if (values != null)
cmd.Parameters.AddRange(values);
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
da.Fill(ds);
}
catch (Exception)
{
}
return ds;
}
}
///
/// 事务
///
///
///
public static bool ExecuteTrasaction(string sqlStr)
{
bool result = true;
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
SqlTransaction tran = null;
try
{
tran = conn.BeginTransaction("Tran");
SqlCommand cmd = new SqlCommand(sqlStr, conn, tran);
cmd.ExecuteNonQuery();
tran.Commit();
result = true;
}
catch
{
tran.Rollback();
result = false;
}
}
return result;
}
///
/// 事务
///
///
///
public static bool ExecuteTrasaction(List sqlStr)
{
bool result = true;
using (SqlConnection conn = new SqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
SqlTransaction tran = null;
try
{
tran = conn.BeginTransaction("Tran");
for (int i = 0; i < sqlStr.Count; i++)
{
SqlCommand cmd = new SqlCommand(sqlStr[i], conn, tran);
cmd.ExecuteNonQuery();
}
tran.Commit();
result = true;
}
catch
{
tran.Rollback();
result = false;
}
}
return result;
}
///
/// 拆箱获得int
///
///
///
public static int GetInt(object obj)
{
return (int)obj;
}
///
/// 拆箱获得float
///
///
///
public static float GetFloat(object obj)
{
return (float)obj;
}
///
/// 拆箱获得double
///
///
///
public static double GetDouble(object obj)
{
return (double)obj;
}
///
/// 拆箱获得long
///
///
///
public static long GetLong(object obj)
{
return (long)obj;
}
///
/// 拆箱获得decimal
///
///
///
public static decimal GetDecimal(object obj)
{
return (decimal)obj;
}
///
/// 拆箱获得bool
///
///
///
public static bool GetBoolean(object obj)
{
return (bool)obj;
}
///
/// 拆箱获得DateTime
///
///
///
public static DateTime GetDateTime(object obj)
{
return (DateTime)obj;
}
///
/// 拆箱获得string
///
///
///
public static string GetString(object obj)
{
return obj + "";
}
public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
{
SqlConnection connection = new SqlConnection(_ConnectionString);
connection.Open();
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
}
}