/// <summary>
/// 数据库连接字符串
/// </summary>
private static string sConn = "server=.\\SQLEXPRESS;uid=sa;pwd=sa;database=csgl";
/// <summary>
/// 数据库连接对象
/// </summary>
private static SqlConnection conn = new SqlConnection(sConn);
/// <summary>
/// 打开数据库连接
/// </summary>
public static void Open()
{
//判断数据库连接是否关闭
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public static void Close()
{
//判断数据库连接是否打开
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
/// <summary>
/// 执行Command对象的ExecuteScalar方法
/// </summary>
/// <param name="sSql">要执行的SQL语句</param>
/// <returns></returns>
public static object ExecuteScalar(string sSql)
{
object obj = null;
SqlCommand comm = new SqlCommand(sSql, conn);
try
{
//调用当前类的数据库打开方法
Open();
//执行Command对象的命令
obj = comm.ExecuteScalar();
}
catch
{
//把异常抛到调用该方法的地方
throw;
}
finally
{
//调用当前类的数据库关闭方法
Close();
}
return obj;
}
/// <summary>
/// 执行Command对象的ExecuteNonQuery方法
/// </summary>
/// <param name="sSql">要执行的SQL语句</param>
/// <returns></returns>
public static int ExecuteNonQuery(string sSql)
{
int iResult;
SqlCommand comm = new SqlCommand(sSql, conn);
try
{
//调用当前类的数据库打开方法
Open();
//执行Command对象的命令
iResult = comm.ExecuteNonQuery();
}
catch
{
//把异常抛到调用该方法的地方
throw;
}
finally
{
//调用当前类的数据库关闭方法
Close();
}
return iResult;
}
/// <summary>
/// 执行Command对象的ExecuteNonQuery方法
/// </summary>
/// <param name="sSql">要执行的SQL语句</param>
/// <returns></returns>
public static bool ExecuteNonQuery(List<string> sSql)
{
bool bResult = false;
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
try
{
//调用当前类的数据库打开方法
Open();
comm.Transaction = conn.BeginTransaction();
foreach (string s in sSql)
{
comm.CommandText = s;
//执行Command对象的命令
comm.ExecuteNonQuery();
}
comm.Transaction.Commit();
bResult = true;
}
catch
{
comm.Transaction.Rollback();
//把异常抛到调用该方法的地方
throw;
}
finally
{
//调用当前类的数据库关闭方法
Close();
}
return bResult;
}
/// <summary>
/// 执行Command对象的ExecuteReader方法
/// </summary>
/// <param name="sSql">要执行的SQL语句</param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string sSql)
{
SqlDataReader dr = null;
SqlCommand comm = new SqlCommand(sSql, conn);
try
{
//调用当前类的数据库打开方法
Open();
//执行Command对象的命令
dr = comm.ExecuteReader();
}
catch
{
//把异常抛到调用该方法的地方
throw;
}
//该处不能关闭数据库连接,否则返回的DataReader对象,在外面不能读取到数据
return dr;
}
/// <summary>
/// 通过适配器填充数据集
/// </summary>
/// <param name="sSql">要执行的SQL语句</param>
/// <returns></returns>
public static DataSet Execute(string sSql)
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sSql, conn);
try
{
da.Fill(ds);
}
catch
{
throw;
}
return ds;
}