温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:人才网初学者工具包源码
当前文件路径:JobSiteStarterKit/App_Code/DAL/DBAccess.cs

1using System; 2
using System.Data; 3
using System.Data.SqlClient; 4
using System.Configuration; 5
//该源码下载自www.51aspx.com(51aspx.com) 6
7
namespace JobSiteStarterKit.DAL 8
{ 9
/// <summary> 10
/// 数据访问层,主要用于简化ADO.NET 与数据库的操作细节。 11
/// </summary> 12
public class DBAccess:IDisposable 13
{ 14
private IDbCommand cmd=new SqlCommand(); 15
private string strConnectionString=""; 16
private bool handleErrors=false; 17
private string strLastError=""; 18
19
/// <summary> 20
/// 构造函数,从Web.Config中读取ConnectionString节的内容。 21
/// </summary> 22
public DBAccess() 23
{ 24
ConnectionStringSettings objConnectionStringSettings = ConfigurationManager.ConnectionStrings["connectionstring"]; 25
strConnectionString = objConnectionStringSettings.ConnectionString; 26
SqlConnection cnn=new SqlConnection(); 27
cnn.ConnectionString=strConnectionString; 28
cmd.Connection=cnn; 29
//默认情况下,将CommandType设为使用存储过程进行更新 30
cmd.CommandType = CommandType.StoredProcedure; 31
} 32
/// <summary> 33
/// 返回一个IDataReader接口,简化定义DBAccess的ExecuteReader 34
/// </summary> 35
/// <returns></returns> 36
public IDataReader ExecuteReader() 37
{ 38
IDataReader reader=null; 39
try 40
{ 41
//打开数据库连接 42
this.Open(); 43
//执行完关闭毕连接 44
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); 45
} 46
catch (Exception ex) 47
{ 48
if (handleErrors) 49
strLastError = ex.Message; 50
else 51
throw; 52
} 53
catch 54
{ 55
throw; 56
} 57
return reader; 58
} 59
/// <summary> 60
/// 执行commandText字符串指定的Sql语句或存储过程,返回IDataReader 61
/// </summary> 62
/// <param name="commandtext">Sql语句或存储过程</param> 63
/// <returns>实现了IDataReader接口的对象</returns> 64
public IDataReader ExecuteReader(string commandtext) 65
{ 66
IDataReader reader=null; 67
try 68
{ 69
cmd.CommandText=commandtext; 70
reader=this.ExecuteReader(); 71
} 72
catch(Exception ex) 73
{ 74
if(handleErrors) 75
strLastError=ex.Message; 76
else 77
throw; 78
} 79
catch 80
{ 81
throw; 82
} 83
84
return reader; 85
} 86
/// <summary> 87
/// 返回结果集中的第一行第一列 88
/// </summary> 89
/// <returns>object类型,需要进行显示转换</returns> 90
public object ExecuteScalar() 91
{ 92
object obj=null; 93
try 94
{ 95
this.Open(); 96
obj= cmd.ExecuteScalar(); 97
this.Close(); 98
} 99
catch(Exception ex) 100
{ 101
if(handleErrors) 102
strLastError=ex.Message; 103
else 104
throw; 105
} 106
catch 107
{ 108
throw; 109
} 110
111
return obj; 112
} 113
/// <summary> 114
///执行commandText字符串指定的Sql语句或存储过程,获取返回结果集中的第一行第一列 115
/// </summary> 116
/// <param name="commandtext">Sql语句或存储过程</param> 117
/// <returns>object类型,需要进行显示转换</returns> 118
public object ExecuteScalar(string commandtext) 119
{ 120
object obj=null; 121
try 122
{ 123
cmd.CommandText=commandtext; 124
obj= this.ExecuteScalar(); 125
} 126
catch(Exception ex) 127
{ 128
if(handleErrors) 129
strLastError=ex.Message; 130
else 131
throw; 132
} 133
catch 134
{ 135
throw; 136
} 137
138
return obj; 139
} 140
/// <summary> 141
/// 执行命令,并返回结果所影响的行数 142
/// </summary> 143
/// <returns></returns> 144
public int ExecuteNonQuery() 145
{ 146
int i=-1; 147
try 148
{ 149
this.Open(); 150
i=cmd.ExecuteNonQuery(); 151
this.Close(); 152
} 153
catch(Exception ex) 154
{ 155
if(handleErrors) 156
strLastError=ex.Message; 157
else 158
throw; 159
} 160
catch 161
{ 162
throw; 163
} 164
165
return i; 166
} 167
/// <summary> 168
/// 执行commandText字符串指定的Sql语句或存储过程,并返回影响的行数 169
/// </summary> 170
/// <param name="commandtext">Sql语句或存储过程</param> 171
/// <returns>执行Sql语句后所影响的行数</returns> 172
public int ExecuteNonQuery(string commandtext) 173
{ 174
int i=-1; 175
try 176
{ 177
cmd.CommandText=commandtext; 178
i=this.ExecuteNonQuery(); 179
} 180
catch(Exception ex) 181
{ 182
if(handleErrors) 183
strLastError=ex.Message; 184
else 185
throw; 186
} 187
catch 188
{ 189
throw; 190
} 191
192
return i; 193
} 194
/// <summary> 195
/// 执行命令,得到一个DataSet 196
/// </summary> 197
/// <returns>一个填充了数据的DataSet</returns> 198
public DataSet ExecuteDataSet() 199
{ 200
SqlDataAdapter da=null; 201
DataSet ds=null; 202
try 203
{ 204
da=new SqlDataAdapter(); 205
da.SelectCommand=(SqlCommand)cmd; 206
ds=new DataSet(); 207
da.Fill(ds); 208
} 209
catch(Exception ex) 210
{ 211
if(handleErrors) 212
strLastError=ex.Message; 213
else 214
throw; 215
} 216
catch 217
{ 218
throw; 219
} 220
221
return ds; 222
} 223
/// <summary> 224
/// 执行commandText字符串指定的Sql语句或存储过程,返回一个DataSet 225
/// </summary> 226
/// <param name="commandtext">Sql语句或存储过程</param> 227
/// <returns>一个填充了数据的DataSet</returns> 228
public DataSet ExecuteDataSet(string commandtext) 229
{ 230
DataSet ds=null; 231
try 232
{ 233
cmd.CommandText=commandtext; 234
ds=this.ExecuteDataSet(); 235
} 236
catch(Exception ex) 237
{ 238
if(handleErrors) 239
strLastError=ex.Message; 240
else 241
throw; 242
} 243
catch 244
{ 245
throw; 246
} 247
248
return ds; 249
} 250
/// <summary> 251
///获取或设置CommandText的值 252
/// </summary> 253
public string CommandText 254
{ 255
get 256
{ 257
return cmd.CommandText; 258
} 259
set 260
{ 261
cmd.CommandText=value; 262
cmd.Parameters.Clear(); 263
} 264
} 265
/// <summary> 266
/// 返回一个IDataParameterCollection的只读属性 267
/// </summary> 268
public IDataParameterCollection Parameters 269
{ 270
get 271
{ 272
return cmd.Parameters; 273
} 274
} 275
/// <summary> 276
/// 添加参数到参数集合 277
/// </summary> 278
/// <param name="paramname">参数名称</param> 279
/// <param name="paramvalue">参数值</param> 280
public void AddParameter(string paramname,object paramvalue) 281
{ 282
SqlParameter param=new SqlParameter(paramname,paramvalue); 283
cmd.Parameters.Add(param); 284
} 285
/// <summary> 286
/// 直接天加一个IDataParameter类型的对象到参数集合。 287
/// </summary> 288
/// <param name="param"></param> 289
public void AddParameter(IDataParameter param) 290
{ 291
cmd.Parameters.Add(param); 292
} 293




