using System; using System.Data; using System.Data.SqlClient; using System.Collections; namespace ReCard { public static class DB { private static SqlConnection connection = null; private static SqlCommand command = null; private static SqlDataAdapter adapter = null; private static string errorString; public static string ErrorString { get { return errorString; } } /// <summary> /// 初始化 /// </summary> public static void Init(string ConnectionString) { connection = new SqlConnection(ConnectionString); command = connection.CreateCommand(); adapter = new SqlDataAdapter(); adapter.SelectCommand = command; } /// <summary> /// 打开连接 /// </summary> /// <returns></returns> public static bool Connect() { try { if (connection.State == ConnectionState.Closed) { connection.Open(); } return true; } catch (Exception) { return false; } } /// <summary> /// 关闭连接 /// </summary> /// <returns></returns> public static bool CloseConnect() { try { if (connection.State == ConnectionState.Open) { connection.Close(); } return true; } catch (Exception) { return false; } } /// <summary> /// 根据查询语句从数据库检索数据 /// </summary> /// <param name="strSelect">查询语句</param> /// <returns>有数据则返回DataTable对象,否则返回null</returns> public static DataTable DTSelect(string SelectString) { errorString = ""; try { if (connection.State == ConnectionState.Closed) { connection.Open(); } adapter.SelectCommand.CommandType = CommandType.Text; adapter.SelectCommand.CommandText = SelectString; DataTable myDT = new DataTable(); adapter.Fill(myDT); return myDT; } catch (Exception ex) { errorString = "数据查询失败:" + ex.Message; return null; } } /// <summary> /// 根据Sql语句更新数据库 /// </summary> /// <param name="UpdataString">更新语句</param> /// <returns>更新成功则返回true</returns> public static bool dbUpdate(string UpdataString) { errorString = ""; try { if (connection.State == ConnectionState.Closed) { connection.Open(); } command.CommandType = CommandType.Text; command.CommandText = UpdataString; int intCount = command.ExecuteNonQuery(); return intCount > 0; } catch (Exception ex) { errorString = "更新数据库失败:" + ex.Message; return false; } } /// <summary> /// 执行多条SQL语句,实现数据库事务。 /// </summary> /// <param name="SQLStringList">多条SQL语句</param> public static bool ExecuteSqlTran(ArrayList SQLStringList) { SqlTransaction tx = connection.BeginTransaction(); command.Transaction = tx; try { for (int n = 0; n < SQLStringList.Count; n++) { string strsql = SQLStringList[n].ToString(); if (strsql.Trim().Length > 1) { command.CommandText = strsql; command.ExecuteNonQuery(); } } tx.Commit(); return true; } catch (Exception Etranca) { tx.Rollback(); errorString = "数据库操作失败:" + Etranca.Message; return false; } } } }