您目前尚未登陆,请选择【登陆】或【注册
首页->电子商务->我的小书坊源码(三层实现)>>App-Code/DataAccessLayer/Database.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:我的小书坊源码(三层实现)
当前文件:文件类型 MyBookShop/App_Code/DataAccessLayer/Database.cs打开代码结构图
普通视图
		            
1using System; 2using System.ComponentModel; 3using System.Collections; 4using System.Diagnostics; 5using System.Data; 6using System.Data.SqlClient; 7using System.Configuration; 8//该源码下载自www.51aspx.com(51aspx.com) 9 10using MyBookShop.DataAccessHelper; 11 12namespace MyBookShop.DataAccessLayer 13{ 14 /// <summary> 15 /// 类,用于数据访问的类。 16 /// </summary> 17 public class Database : IDisposable 18 { 19 /// <summary> 20 /// 保护变量,数据库连接。 21 /// </summary> 22 protected SqlConnection Connection; 23 24 /// <summary> 25 /// 保护变量,数据库连接串。 26 /// </summary> 27 protected String ConnectionString; 28 29 /// <summary> 30 /// 构造函数。 31 /// </summary> 32 /// <param name="DatabaseConnectionString">数据库连接串</param> 33 public Database() 34 { 35 ConnectionString =ConfigurationManager.AppSettings["DBConnectionString"]; 36 } 37 38 /// <summary> 39 /// 析构函数,释放非托管资源 40 /// </summary> 41 ~Database() 42 { 43 try 44 { 45 if (Connection != null) 46 Connection.Close(); 47 } 48 catch{} 49 try 50 { 51 Dispose(); 52 } 53 catch{} 54 } 55 56 /// <summary> 57 /// 保护方法,打开数据库连接。 58 /// </summary> 59 protected void Open() 60 { 61 if (Connection == null) 62 { 63 Connection = new SqlConnection(ConnectionString); 64 } 65 if (Connection.State.Equals(ConnectionState.Closed)) 66 { 67 Connection.Open(); 68 } 69 } 70 71 /// <summary> 72 /// 公有方法,关闭数据库连接。 73 /// </summary> 74 public void Close() 75 { 76 if (Connection != null) 77 Connection.Close(); 78 } 79 80 /// <summary> 81 /// 公有方法,释放资源。 82 /// </summary> 83 public void Dispose() 84 { 85 // 确保连接被关闭 86 if (Connection != null) 87 { 88 Connection.Dispose(); 89 Connection = null; 90 } 91 } 92 93 /// <summary> 94 /// 公有方法,获取数据,返回一个SqlDataReader (调用后主意调用SqlDataReader.Close())。 95 /// </summary> 96 /// <param name="SqlString">Sql语句</param> 97 /// <returns>SqlDataReader</returns> 98 public SqlDataReader GetDataReader(String SqlString) 99 { 100 Open(); 101 SqlCommand cmd = new SqlCommand(SqlString,Connection); 102 return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); 103 } 104 105 /// <summary> 106 /// 公有方法,获取数据,返回一个SqlDataReader (调用后主意调用SqlDataReader.Close()、Database.Close())。 107 /// </summary> 108 /// <param name="SqlString">Sql语句</param> 109 /// <returns>SqlDataReader</returns> 110 public SqlDataReader GetSaDataReader(String SqlString) 111 { 112 Open(); 113 SqlCommand cmd = new SqlCommand(SqlString,Connection); 114 return cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess); 115 } 116 117 /// <summary> 118 /// 公有方法,获取数据,返回一个DataSet。 119 /// </summary> 120 /// <param name="SqlString">Sql语句</param> 121 /// <returns>DataSet</returns> 122 public DataSet GetDataSet(String SqlString) 123 { 124 Open(); 125 SqlDataAdapter adapter = new SqlDataAdapter(SqlString,Connection); 126 DataSet dataset = new DataSet(); 127 adapter.Fill(dataset); 128 Close(); 129 return dataset; 130 } 131//51_a_s_p_x.c_o_m 132 133 /// <summary> 134 /// 公有方法,获取数据,返回一个DataTable。 135 /// </summary> 136 /// <param name="SqlString">Sql语句</param> 137 /// <returns>DataTable</returns> 138 public DataTable GetDataTable(String SqlString) 139 { 140 DataSet dataset = GetDataSet(SqlString); 141 dataset.CaseSensitive = false; 142 return dataset.Tables[0]; 143 } 144 145 /// <summary> 146 /// 公有方法,获取数据,返回一个DataRow。 147 /// </summary> 148 /// <param name="SqlString">Sql语句</param> 149 /// <returns>DataRow</returns> 150 public DataRow GetDataRow(String SqlString) 151 { 152 DataSet dataset = GetDataSet(SqlString); 153 dataset.CaseSensitive = false; 154 if (dataset.Tables[0].Rows.Count>0) 155 { 156 return dataset.Tables[0].Rows[0]; 157 } 158 else 159 { 160 return null; 161 } 162 } 163 164 /// <summary> 165 /// 公有方法,执行Sql语句。 166 /// </summary> 167 /// <param name="SqlString">Sql语句</param> 168 /// <returns>对Update、Insert、Delete为影响到的行数,其他情况为-1</returns> 169 public int ExecuteSQL(String SqlString) 170 { 171 int count = -1; 172 Open(); 173 try 174 { 175 SqlCommand cmd = new SqlCommand(SqlString,Connection); 176 count = cmd.ExecuteNonQuery(); 177 } 178 catch 179 { 180 count = -1; 181 } 182 finally 183 { 184 Close(); 185 } 186 return count; 187 } 188 189 /// <summary> 190 /// 公有方法,执行一组Sql语句。 191 /// </summary> 192 /// <param name="SqlStrings">Sql语句组</param> 193 /// <returns>是否成功</returns> 194 public bool ExecuteSQL(String[] SqlStrings) 195 { 196 bool success = true; 197 Open(); 198 SqlCommand cmd = new SqlCommand(); 199 SqlTransaction trans = Connection.BeginTransaction(); 200 cmd.Connection = Connection; 201 cmd.Transaction = trans; 202 try 203 { 204 foreach (String str in SqlStrings) 205 { 206 cmd.CommandText = str; 207 cmd.ExecuteNonQuery(); 208 } 209 trans.Commit(); 210 } 211 catch 212 { 213 success = false; 214 trans.Rollback(); 215 } 216 finally 217 { 218 Close(); 219 } 220 return success; 221 } 222 223 /// <summary> 224 /// 公有方法,执行一组Sql语句。 225 /// </summary> 226 /// <param name="SqlStrings">Sql语句组</param> 227 /// <returns>是否成功</returns> 228 public bool ExecuteSQL(ArrayList SqlStrings) 229 { 230 bool success = true; 231 Open(); 232 SqlCommand cmd = new SqlCommand(); 233 SqlTransaction trans = Connection.BeginTransaction(); 234 cmd.Connection = Connection; 235 cmd.Transaction = trans; 236 try 237 { 238 foreach (String str in SqlStrings) 239 { 240 cmd.CommandText = str; 241 cmd.ExecuteNonQuery(); 242 } 243 trans.Commit(); 244 } 245 catch 246 { 247 success = false; 248 trans.Rollback(); 249 } 250 finally 251 { 252 Close(); 253 } 254 return success; 255 } 256 257 /// <summary> 258 /// 公有方法,在一个数据表中插入一条记录。 259 /// </summary> 260 /// <param name="TableName">表名</param> 261 /// <param name="Cols">哈西表,键值为字段名,值为字段值</param> 262 /// <returns>是否成功</returns> 263 public bool Insert(String TableName,Hashtable Cols) 264 { 265 int Count = 0; 266 267 if (Cols.Count<=0) 268 { 269 return true; 270 } 271 272 String Fields = " ("; 273 String Values = " Values("; 274 foreach(DictionaryEntry item in Cols) 275 { 276 if (Count!=0) 277 { 278 Fields += ","; 279 Values += ","; 280 } 281 Fields += "["+item.Key.ToString()+"]"; 282 Values += item.Value.ToString(); 283