温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:三层班级留言本源码
当前文件路径:ClassSay/IDBAccessLib/DataAccess.cs

1using System; 2
using System.Data; 3
using System.Data.SqlClient; 4
//该源码下载自www.51aspx.com(51aspx.com) 5
6
namespace DataAccessLib 7
...{ 8
数据库访问接口#region 数据库访问接口 9
public interface IDataAccess 10
...{ 11
属性#region 属性 12
/**//// <summary> 13
/// 连接字符串 14
/// </summary> 15
string ConnectionString 16
...{ 17
get; 18
set; 19
} 20
#endregion 21
22
方法#region 方法 23
/**//// <summary> 24
/// 打开连接 25
/// </summary> 26
void Open(); 27
//51_a_s_p_x.c_o_m 28
29
/**//// <summary> 30
/// 关闭连接 31
/// </summary> 32
void Close(); 33
34
/**//// <summary> 35
/// 执行命令 36
/// </summary> 37
/// <param name="CommandString">命令字符串</param> 38
/// <param name="Paras">命令所带参数的数组</param> 39
void ExcuteCommand( string CommandString, IDataParameter[] Paras ); 40
41
/**//// <summary> 42
/// 返回用户权限码 43
/// </summary> 44
/// <param name="CommandString">命令字符串</param> 45
/// <param name="Paras">参数数组</param> 46
/// <returns>返回类型 </returns> 47
string UserRoot(string CommandString, IDataParameter[] Paras); 48
49
/**//// <summary> 50
/// 查询执行命令获取数据记录集 51
/// </summary> 52
/// <param name="SelectCommandString">查询命令字符串</param> 53
/// <param name="TableName">查询表名</param> 54
/// <param name="Paras">查询命令所带参数的数组</param> 55
/// <returns>执行查询命令获取的数据记录集</returns> 56
DataSet GetDataSetFromExcuteCommand( string SelectCommandString, string TableName, IDataParameter[] Paras ); 57
58
/**//// <summary> 59
/// 执行存储过程 60
/// </summary> 61
/// <param name="ProcName">存储过程名</param> 62
/// <param name="Paras">存储过程所带参数的数组</param> 63
int ExcuteProc( string ProcName, IDataParameter[] Paras ); 64
65
/**//// <summary> 66
/// 执行查询存储过程获取数据记录集 67
/// </summary> 68
/// <param name="SelectProcName">查询存储过程名</param> 69
/// <param name="TableName">查询表名</param> 70
/// <param name="Paras">查询存储过程所带参数的数组</param> 71
/// <returns>执行查询存储过程获取的数据记录集</returns> 72
DataSet GetDataSetFromExcuteProc( string SelectProcName, string TableName, IDataParameter[] Paras ); 73
74
/**//// <summary> 75
/// 执行命令获取第一行第一列的值 76
/// </summary> 77
/// <param name="CommandString">命令字符串</param> 78
/// <param name="Paras">命令所带参数的数组</param> 79
/// <returns>第一行第一列的值</returns> 80
object ExecuteCommandScalar( string CommandString, IDataParameter[] Paras ); 81
82
/**//// <summary> 83
/// 执行存储过程获取第一行第一列的值 84
/// </summary> 85
/// <param name="ProcName">存储过程名</param> 86
/// <param name="Paras">存储过程所带参数的数组</param> 87
/// <returns>第一行第一列的值</returns> 88
object ExecuteProcScalar( string ProcName, IDataParameter[] Paras ); 89
90
/**//// <summary> 91
/// 执行命令获取数据读取器 92
/// </summary> 93
/// <param name="SelectCommandString">查询命令字符串</param> 94
/// <param name="Paras">查询命令所带参数的数组</param> 95
/// <returns>数据读取器</returns> 96
IDataReader GetDataReaderFromExcuteCommand( string SelectCommandString, IDataParameter[] Paras ); 97
98
/**//// <summary> 99
/// 执行存储过程获取数据读取器 100
/// </summary> 101
/// <param name="SelectCommandString">查询存储过程名</param> 102
/// <param name="Paras">查询存储过程所带参数的数组</param> 103
/// <returns>数据读取器</returns> 104
IDataReader GetDataReaderFromExcuteProc( string SelectProcName, IDataParameter[] Paras ); 105
#endregion 106
} 107
#endregion 108
109
SQL数据库访问类#region SQL数据库访问类 110
public class SqlAccess:IDataAccess 111
...{ 112
SQL数据库访问构造方法#region SQL数据库访问构造方法 113
/**//// <summary> 114
/// 无参SQL数据库访问构造方法 115
/// </summary> 116
public SqlAccess() 117
...{ 118
strConn = ""; 119
conn = new SqlConnection(); 120
} 121
122
/**//// <summary> 123
/// 有参SQL数据库访问构造方法 124
/// </summary> 125
/// <param name="ConnectionString">数据库连接字符串</param> 126
public SqlAccess( string ConnectionString ) 127
...{ 128
strConn = ConnectionString; 129
conn = new SqlConnection( strConn ); 130
} 131
#endregion 132
133
SQL数据库方法类字段#region SQL数据库方法类字段 134
private string strConn; // 数据库连接字符串 135
private SqlConnection conn; // 数据库连接对象 136
#endregion 137
138
命令文本类型枚举#region 命令文本类型枚举 139
private enum CommandTextType // 命令文本类型 140
...{ 141
Command, // 命令 142
Procedure // 存储过程 143
} 144
#endregion 145
146
获取命令对象#region 获取命令对象 147
/**//// <summary> 148
/// 获取命令对象 149
/// </summary> 150
/// <param name="CommandText">命令文本</param> 151
/// <param name="Type">命令文本类型</param> 152
/// <param name="Paras">命令文本所带参数</param> 153
/// <returns>命令对象</returns> 154
private SqlCommand GetCommand( string CommandText, CommandTextType Type, IDataParameter[] Paras ) 155
...{ 156
SqlCommand cmd = new SqlCommand( CommandText, conn ); // 生成命令对象 157
158
switch ( Type ) // 指定命令类型 159
...{ 160
case CommandTextType.Command: 161
cmd.CommandType = CommandType.Text; 162
break; 163
case CommandTextType.Procedure: 164
cmd.CommandType = CommandType.StoredProcedure; 165
break; 166
} 167
168
if ( Paras != null ) // 为命令添加参数 169
...{ 170
foreach ( IDataParameter Para in Paras ) 171
...{ 172
cmd.Parameters.Add( Para ); 173
} 174
} 175
176
return cmd; 177
} 178
#endregion 179
180
执行命令获取第一行第一列的数据#region 执行命令获取第一行第一列的数据 181
/**//// <summary> 182
/// 执行命令获取第一行第一列的数据 183
/// </summary> 184
/// <param name="cmd"></param> 185
/// <returns></returns> 186
private object GetScalar( SqlCommand cmd ) 187
...{ 188
object obj = null; 189
190
try 191
...{ 192
Open(); // 打开连接 193
obj = cmd.ExecuteScalar(); // 执行命令获取第一行第一列数据 194
Close(); // 关闭连接 195
} 196
catch ( Exception exp ) 197
...{ 198
throw ( new Exception( "执行命令获取第一行第一列的数据错误:" + exp.Message ) ); 199
} 200
201
return obj; 202
} 203
#endregion 204
205
获取数据读取器#region 获取数据读取器 206
/**//// <summary> 207
/// 获取数据读取器 208
/// </summary> 209
/// <param name="cmd">命令对象</param> 210
/// <returns>数据读取器</returns> 211
private SqlDataReader GetDataReader( SqlCommand cmd ) 212
...{ 213
SqlDataReader Reader = null; 214
215
try 216
...{ 217
Open(); // 打开连接 218
Reader = cmd.ExecuteReader(); // 获取数据读取器 219
} 220
catch ( Exception exp ) 221
...{ 222
throw ( new Exception( "执行命令获取数据读取器错误:" + exp.Message ) ); 223
} 224
225
return Reader; 226
} 227
#endregion 228
229
IDataAccess 成员#region IDataAccess 成员 230
231
数据库连接字符串属性#region 数据库连接字符串属性 232
public string ConnectionString 233
...{ 234
get 235
...{ 236
// TODO: 添加 SqlAccess.ConnectionString getter 实现 237
return strConn; 238
} 239
set 240
...{ 241
// TODO: 添加 SqlAccess.ConnectionString setter 实现 242
strConn = value; 243
conn.ConnectionString = strConn; 244
} 245
} 246
#endregion 247
248
打开连接#region 打开连接 249
/**//// <summary> 250
/// 打开连接 251
/// </summary> 252
public void Open() 253
...{ 254
// TODO: 添加 SqlAccess.Open 实现 255
try 256
...{ 257
if ( conn.State != ConnectionState.Open ) // 判断数据库连接状态是否打开 258
...{ 259
conn.Open(); // 打开数据库连接 260
} 261
} 262
catch ( Exception exp ) 263
...{ 264
throw ( new Exception( "打开数据库连接错误:" + exp.Message ) ); 265




