BLL.cs完整代码及使用示例
1
using System;
2
using System.Data.SqlClient;
3
using System.Configuration;
4
using System.Data;
5![]()
6
namespace fradmin.DBAccess
7
{
8
/// <summary>
9
/// BLL 的摘要说明。
10
/// </summary>
11
public abstract class BLL
12
{
13
public BLL()
14
{
15
16
}
17![]()
18
//返回数据连接字符串
19
public static readonly string ConnectString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
20
21
//实现只返回首行首列的数据操作,四个参数,同时其一为数据连接字符串
22
public static object ExecuteScalar(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)
23
{
24
SqlCommand cmd=new SqlCommand();
25
using (SqlConnection conn=new SqlConnection(connectString))
26
{
27
//将各数据参数添加至数据操作对象,准备执行数据操作
28
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);
29
//用object类型数值接收操作返回对象
30
object val=cmd.ExecuteScalar();
31
//清除数据操作命令参数
32
cmd.Parameters.Clear();
33
return val;
34
}
35
}
36![]()
37
//执行只返回首行首列的数据操作,四个参数对象,一为数据连接对象参数
38
public static object ExecuteScalar(SqlConnection conn,CommandType cmdType,string cmdText,params SqlParameter[] parms)
39
{
40
SqlCommand cmd=new SqlCommand();
41![]()
42
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);
43
object val=cmd.ExecuteScalar();
44
cmd.Parameters.Clear();
45
return val;
46
}
47![]()
48
//执行返回受影响行数的ExecuteNonQuary类型数据操作,其中数据连接参数为字符串
49
public static int ExecuteNonQuery(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)
50
{
51
SqlCommand cmd=new SqlCommand();
52
53
using (SqlConnection conn=new SqlConnection(connectString))
54
{
55
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);
56
int val=cmd.ExecuteNonQuery();
57
cmd.Parameters.Clear();
58
return val;
59
}
60
}
61![]()
62
//其中数据连接参数为SqlConnection对象
63
public static int ExecuteNonQuery(SqlConnection conn,CommandType cmdType,string cmdText,params SqlParameter[] parms)
64
{
65
SqlCommand cmd=new SqlCommand();
66
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);
67
int val=cmd.ExecuteNonQuery();
68
cmd.Parameters.Clear();
69
return val;
70
}
71![]()
72
//包含事务处理的数据操作,并且返回受影响行数的数据操作
73
public static int ExecuteNonQuery(SqlTransaction trans,CommandType cmdType,string cmdText,params SqlParameter[] parms)
74
{
75
SqlCommand cmd=new SqlCommand();
76
PrepareExecute(cmd,trans.Connection,trans,cmdType,cmdText,parms);
77
int obj=cmd.ExecuteNonQuery();
78
cmd.Parameters.Clear();
79
return obj;
80
}
81![]()
82
//返回类型为SqlDataReader的数据操作,返回数据行,同时数据连接参数为string
83
public static SqlDataReader ExecuteReader(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)
84
{
85
SqlConnection conn=new SqlConnection(connectString);
86
SqlCommand cmd=new SqlCommand();
87![]()
88
try
89
{
90
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);
91
SqlDataReader objdr=cmd.ExecuteReader();
92
cmd.Parameters.Clear();
93
return objdr;
94
}
95
catch
96
{
97
conn.Close();
98
throw;
99
}
100
}
101![]()
102
//返回类型为SqlDataReader的数据操作,返回数据操作行,同时数据操作过程不带参数
103
public static SqlDataReader ExecuteReader(string connectString,CommandType cmdType,string cmdText)
104
{
105
return ExecuteReader(connectString,cmdType,cmdText,(SqlParameter[])null);
106
}
107![]()
108
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带有事务处理,且数据操作不带参数,数据连接参数为string类型
109
public static DataSet ExecuteDataSet(string connectString,CommandType cmdType,string cmdText)
110
{
111
return ExecuteDataSet(connectString,cmdType,cmdText,(SqlParameter[])null);
112
}
113
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带有事务处理,其中数据连接操作参数为string类型
114
public static DataSet ExecuteDataSet(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)
115
{
116
117
using (SqlConnection conn=new SqlConnection(connectString))
118
{
119
conn.Open();
120
return ExecuteDataSet(conn,cmdType,cmdText,parms);
121
}
122
}
123
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带事务处理,其中数据连接操作参数为SqlConnectin类型,但不带数据操作参数
124
public static DataSet ExecuteDataSet(SqlConnection conn,CommandType cmdType,string cmdText)
125
{
126
return ExecuteDataSet(conn,cmdType,cmdText,(SqlParameter[])null);
127
}
128![]()
129
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带事务处理,其中数据连接操作参数为SqlConnectin类型
130
public static DataSet ExecuteDataSet(SqlConnection conn,CommandType cmdType,string cmdText,params SqlParameter[] parms)
131
{
132
//新建数据库操作对象,并将各参数添加准备执行数据操作
133
SqlCommand cmd=new SqlCommand();
134
PrepareExecute(cmd,conn,(SqlTransaction)null,cmdType,cmdText,parms);
135![]()
136
//新建SqlDataAdapter对象并将操作结果填充至DataSet对象作为返回值
137
SqlDataAdapter da=new SqlDataAdapter(cmd);
138
139
DataSet ds=new DataSet();
140
da.Fill(ds);
141![]()
142
cmd.Parameters.Clear();
143
return ds;
144![]()
145
}
146![]()
147
148
//将各数据操作属性及参数传至操作命令,准备执行数据操作,共六个参数
149
public static void PrepareExecute(SqlCommand cmd,SqlConnection conn,SqlTransaction trans,CommandType cmdType,string cmdText,SqlParameter[] cmdParms)
150
{
151
//检查数据连接对象是否打开,
152
if(conn.State!=ConnectionState.Open)
153
conn.Open();
154![]()
155
cmd.Connection=conn;
156
cmd.CommandText=cmdText;
157![]()
158
//判定是否存在事务处理,有则添加执行
159
if(trans!=null)
160
cmd.Transaction=trans;
161![]()
162
//将数据操作类型传至操作对象
163
cmd.CommandType=cmdType;
164
//检查是否具有参数,有则遍历添加至SqlParameter
165
if(cmdParms !=null)
166
{
167
foreach (SqlParameter param in cmdParms)
168
cmd.Parameters.Add(param);
169
}
170
}
171
}
172
}
173![]()
使用示例:AdminDB.cs
using System;2
using System.Data.SqlClient;3
using System.Configuration;4
using System.Data;5

6
namespace fradmin.DBAccess7
{8
/// <summary>9
/// BLL 的摘要说明。10
/// </summary>11
public abstract class BLL12
{13
public BLL()14
{15
16
}17

18
//返回数据连接字符串19
public static readonly string ConnectString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];20
21
//实现只返回首行首列的数据操作,四个参数,同时其一为数据连接字符串22
public static object ExecuteScalar(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)23
{24
SqlCommand cmd=new SqlCommand();25
using (SqlConnection conn=new SqlConnection(connectString))26
{27
//将各数据参数添加至数据操作对象,准备执行数据操作28
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);29
//用object类型数值接收操作返回对象30
object val=cmd.ExecuteScalar();31
//清除数据操作命令参数32
cmd.Parameters.Clear();33
return val;34
}35
}36

37
//执行只返回首行首列的数据操作,四个参数对象,一为数据连接对象参数38
public static object ExecuteScalar(SqlConnection conn,CommandType cmdType,string cmdText,params SqlParameter[] parms)39
{40
SqlCommand cmd=new SqlCommand();41

42
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);43
object val=cmd.ExecuteScalar();44
cmd.Parameters.Clear();45
return val;46
}47

48
//执行返回受影响行数的ExecuteNonQuary类型数据操作,其中数据连接参数为字符串49
public static int ExecuteNonQuery(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)50
{51
SqlCommand cmd=new SqlCommand();52
53
using (SqlConnection conn=new SqlConnection(connectString))54
{55
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);56
int val=cmd.ExecuteNonQuery();57
cmd.Parameters.Clear();58
return val;59
}60
}61

62
//其中数据连接参数为SqlConnection对象63
public static int ExecuteNonQuery(SqlConnection conn,CommandType cmdType,string cmdText,params SqlParameter[] parms)64
{65
SqlCommand cmd=new SqlCommand();66
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);67
int val=cmd.ExecuteNonQuery();68
cmd.Parameters.Clear();69
return val;70
}71

72
//包含事务处理的数据操作,并且返回受影响行数的数据操作73
public static int ExecuteNonQuery(SqlTransaction trans,CommandType cmdType,string cmdText,params SqlParameter[] parms)74
{75
SqlCommand cmd=new SqlCommand();76
PrepareExecute(cmd,trans.Connection,trans,cmdType,cmdText,parms);77
int obj=cmd.ExecuteNonQuery();78
cmd.Parameters.Clear();79
return obj;80
}81

82
//返回类型为SqlDataReader的数据操作,返回数据行,同时数据连接参数为string83
public static SqlDataReader ExecuteReader(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)84
{85
SqlConnection conn=new SqlConnection(connectString);86
SqlCommand cmd=new SqlCommand();87

88
try89
{90
PrepareExecute(cmd,conn,null,cmdType,cmdText,parms);91
SqlDataReader objdr=cmd.ExecuteReader();92
cmd.Parameters.Clear();93
return objdr;94
}95
catch96
{97
conn.Close();98
throw;99
}100
}101

102
//返回类型为SqlDataReader的数据操作,返回数据操作行,同时数据操作过程不带参数103
public static SqlDataReader ExecuteReader(string connectString,CommandType cmdType,string cmdText)104
{105
return ExecuteReader(connectString,cmdType,cmdText,(SqlParameter[])null);106
}107

108
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带有事务处理,且数据操作不带参数,数据连接参数为string类型109
public static DataSet ExecuteDataSet(string connectString,CommandType cmdType,string cmdText)110
{111
return ExecuteDataSet(connectString,cmdType,cmdText,(SqlParameter[])null);112
}113
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带有事务处理,其中数据连接操作参数为string类型114
public static DataSet ExecuteDataSet(string connectString,CommandType cmdType,string cmdText,params SqlParameter[] parms)115
{116
117
using (SqlConnection conn=new SqlConnection(connectString))118
{119
conn.Open();120
return ExecuteDataSet(conn,cmdType,cmdText,parms);121
}122
}123
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带事务处理,其中数据连接操作参数为SqlConnectin类型,但不带数据操作参数124
public static DataSet ExecuteDataSet(SqlConnection conn,CommandType cmdType,string cmdText)125
{126
return ExecuteDataSet(conn,cmdType,cmdText,(SqlParameter[])null);127
}128

129
//返回类型为DataSet的数据操作,将所选取数据加至缓存,不带事务处理,其中数据连接操作参数为SqlConnectin类型130
public static DataSet ExecuteDataSet(SqlConnection conn,CommandType cmdType,string cmdText,params SqlParameter[] parms)131
{132
//新建数据库操作对象,并将各参数添加准备执行数据操作133
SqlCommand cmd=new SqlCommand();134
PrepareExecute(cmd,conn,(SqlTransaction)null,cmdType,cmdText,parms);135

136
//新建SqlDataAdapter对象并将操作结果填充至DataSet对象作为返回值137
SqlDataAdapter da=new SqlDataAdapter(cmd);138
139
DataSet ds=new DataSet();140
da.Fill(ds);141

142
cmd.Parameters.Clear();143
return ds;144

145
}146

147
148
//将各数据操作属性及参数传至操作命令,准备执行数据操作,共六个参数149
public static void PrepareExecute(SqlCommand cmd,SqlConnection conn,SqlTransaction trans,CommandType cmdType,string cmdText,SqlParameter[] cmdParms)150
{151
//检查数据连接对象是否打开,152
if(conn.State!=ConnectionState.Open)153
conn.Open();154

155
cmd.Connection=conn;156
cmd.CommandText=cmdText;157

158
//判定是否存在事务处理,有则添加执行159
if(trans!=null)160
cmd.Transaction=trans;161

162
//将数据操作类型传至操作对象163
cmd.CommandType=cmdType;164
//检查是否具有参数,有则遍历添加至SqlParameter165
if(cmdParms !=null)166
{167
foreach (SqlParameter param in cmdParms)168
cmd.Parameters.Add(param);169
}170
}171
}172
}173

1
using System;
2
using System.Data;
3
using System.Data.SqlClient;
4
using System.Configuration;
5
using fradmin.DBAccess;
6![]()
7
namespace fradmin
8
{
9
/// <summary>
10
/// AdminDB 的摘要说明。
11
/// </summary>
12
public class AdminDB
13
{
14
public AdminDB()
15
{
16
//
17
// TODO: 在此处添加构造函数逻辑
18
//
19
}
20
//验证管理员登录,返回为管理员编号AdminID
21
public int AdminLogin(string AdminName,string AdminPwd)
22
{
23
SqlParameter[] para={ new SqlParameter("@AdminName",AdminName),
24
new SqlParameter("@AdminPwd",AdminPwd)
25
};
26
return Convert.ToInt32(DBAccess.BLL.ExecuteScalar(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AdminLogin",para));
27
}
28![]()
29
//通过管理员编号AdminID获得相应管理员角色,将该方法设置为静态,直接引用
30
public static int GetRoleID(int adminID)
31
{
32
SqlParameter[] para={ new SqlParameter("@AdminID",adminID)};
33
return Convert.ToInt32(DBAccess.BLL.ExecuteScalar(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetRoleID",para));
34
}
35![]()
36
//添加新管理员,可以为普通或超级管理员
37
public int AddNewAdmin(string adminid,string adminpwd,int roleid)
38
{
39
object DB_NULL=Convert.DBNull;
40
SqlParameter[] para={ new SqlParameter("@AdminName",adminid),
41
new SqlParameter("@AdminPwd",adminpwd),
42
new SqlParameter("@RoleId",roleid),
43
new SqlParameter("@result",SqlDbType.Int,4,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,DB_NULL)
44
};
45
try
46
{
47
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AddNewAdmin",para);
48
}
49
catch
50
{
51
throw;
52
}
53![]()
54
//返回操作结果
55
return Convert.ToInt32(para[3].Value);
56
}
57![]()
58
//取出所有用户,返回类型为DataSet,将数据添填充致缓存
59
public DataSet GetUserList()
60
{
61
return DBAccess.BLL.ExecuteDataSet(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetUserList");
62
}
63![]()
64
//由于订单处理余额问题,管理员手动修改用户帐户余额
65
public void UpdateUserIntegral(int userid,double integral)
66
{
67
SqlParameter[] param={ new SqlParameter("@UserID",userid),
68
new SqlParameter("@Integral",integral)
69
};
70![]()
71
try
72
{
73
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"UpdateUserIntegral",param);
74
}
75
catch
76
{
77
throw;
78
}
79![]()
80
}
81![]()
82
//添加管理员日志,返回为void,参数为管理员编号和日志内容
83
public static void InsertAction(int adminID,string actionDetail)
84
{
85
SqlParameter[] param={ new SqlParameter("@AdminID",adminID),
86
new SqlParameter("@ActionDetail",actionDetail)
87
};
88![]()
89
try
90
{
91
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"InsertAction",param);
92
}
93
catch
94
{
95
throw;
96
}
97
}
98![]()
99
//索引商品列表,返回类型为DataSet,将数据填充至缓存
100
public DataSet GetGoodList()
101
{
102
return DBAccess.BLL.ExecuteDataSet(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetGoodList");
103
}
104![]()
105
//修改商品单价,参数为商品编号以及新单价
106
public void UpdateGoodPrice(int goodID,decimal newPrice)
107
{
108
SqlParameter[] param={ new SqlParameter("@GoodID",goodID),
109
new SqlParameter("@Price",newPrice)
110
};
111
try
112
{
113
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"UpdateGoodPrice",param);
114
}
115
catch
116
{
117
throw;
118
}
119
}
120![]()
121
//删除选定商品,参数为商品编号
122
public void DeleteGood(int goodID)
123
{
124
SqlParameter[] param={ new SqlParameter("@GoodID",goodID) };
125
126
try
127
{
128
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"DeleteGood",param);
129
}
130
catch
131
{
132
throw;
133
}
134
}
135![]()
136
//添加新商品,
137
public void AddNewGood(string goodName,int categoryID,decimal price,string goodImage,
138
string goodDescription,string autherName,string press,string translator,string ISBN,DateTime pressTime)
139
{
140
SqlParameter[] param={ new SqlParameter("@GoodName",goodName),
141
new SqlParameter("@CategoryID",categoryID),
142
new SqlParameter("@Price",price),
143
new SqlParameter("@GoodImage",goodImage),
144
new SqlParameter("@GoodDescription",goodDescription),
145
new SqlParameter("@AutherName",autherName),
146
new SqlParameter("@Press",press),
147
new SqlParameter("@Translator",translator),
148
new SqlParameter("@ISBN",ISBN),
149
new SqlParameter("@PressTime",pressTime)
150
};
151![]()
152
try
153
{
154
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AddNewGood",param);
155
}
156
catch
157
{
158
throw;
159
}
160
}
161![]()
162
//获取商品类别,返回类型SqlDataReader,为便于使用将其置为静态方法
163
public static SqlDataReader GetCategories()
164
{
165
return DBAccess.BLL.ExecuteReader(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetCategories");
166
}
167![]()
168
//获取管理员角色类型,返回类型为SqlDataReader,设置为static类型
169
public static SqlDataReader GetAdminRoleList()
170
{
171
return DBAccess.BLL.ExecuteReader(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetAdminRoleList");
172
}
173![]()
174
//获取管理员列表,若roleID=-1则返回所有管理员,否则返回对应角色管理员信息
175
public SqlDataReader GetAdminList(int roleid)
176
{
177
SqlParameter[] param={ new SqlParameter("@roleid",roleid)};
178
return DBAccess.BLL.ExecuteReader(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetAdminList",param);
179
}
180![]()
181
//通过管理员ID获取管理员日志,按时间倒序排列
182
public DataSet GetActionList(int adminID)
183
{
184
SqlParameter[] param={new SqlParameter("@AdminID",adminID)};
185![]()
186
return DBAccess.BLL.ExecuteDataSet(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetActionList",param);
187
}
188![]()
189
//根据管理员ID,删除相应管理员
190
public void DeleteAdmin(int adminID)
191
{
192
SqlParameter[] param={
193
new SqlParameter("@AdminID",adminID)
194
};
195
try
196
{
197
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"DeleteAdmin",param);
198
}
199
catch
200
{
201
throw;
202
}
203
}
204![]()
205
//添加商品类别,参数为categoryname,返回类型为void
206
public void AddNewCategory(string categoryName)
207
{
208
SqlParameter[] param={
209
new SqlParameter("@CategoryName",categoryName)
210
};
211
try
212
{
213
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AddNewCategory",param);
214
}
215
catch
216
{
217
throw;
218
}
219
}
220
221
//删除商品类别,参数为类别ID,返回类型为void
222
public void DeleteCategory(int categoryID)
223
{
224
SqlParameter[] param={
225
new SqlParameter("@CategoryID",categoryID)
226
};
227
try
228
{
229
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"DeleteCategory",param);
230
}
231
catch
232
{
233
throw;
234
}
235
}
236![]()
237
//修改密码,返回类型为int ,1为成功更改,-1为更改失败
238
public int ChangePwd(int adminID,string oldPwd,string newPwd)
239
{
240
//设定初始值为空,注意为object类型
241
object p_DBNull=Convert.DBNull;
242
SqlParameter[] param={
243
new SqlParameter("@AdminID",adminID),
244
new SqlParameter("@OldPwd",oldPwd),
245
new SqlParameter("@NewPwd",newPwd),
246
new SqlParameter("@Result",SqlDbType.Int,4,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,p_DBNull)
247
};
248![]()
249
try
250
{
251
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"ChangeAdminPwd",param);
252
}
253
catch
254
{
255
throw;
256
}
257![]()
258
//返回插入标志数值
259
return Convert.ToInt32(param[3].Value);
260
}
261
}
262
}
263![]()
using System;2
using System.Data;3
using System.Data.SqlClient;4
using System.Configuration;5
using fradmin.DBAccess;6

7
namespace fradmin8
{9
/// <summary>10
/// AdminDB 的摘要说明。11
/// </summary>12
public class AdminDB13
{14
public AdminDB()15
{16
//17
// TODO: 在此处添加构造函数逻辑18
//19
}20
//验证管理员登录,返回为管理员编号AdminID21
public int AdminLogin(string AdminName,string AdminPwd)22
{23
SqlParameter[] para={ new SqlParameter("@AdminName",AdminName),24
new SqlParameter("@AdminPwd",AdminPwd)25
};26
return Convert.ToInt32(DBAccess.BLL.ExecuteScalar(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AdminLogin",para));27
}28

29
//通过管理员编号AdminID获得相应管理员角色,将该方法设置为静态,直接引用30
public static int GetRoleID(int adminID)31
{32
SqlParameter[] para={ new SqlParameter("@AdminID",adminID)};33
return Convert.ToInt32(DBAccess.BLL.ExecuteScalar(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetRoleID",para));34
}35

36
//添加新管理员,可以为普通或超级管理员37
public int AddNewAdmin(string adminid,string adminpwd,int roleid)38
{39
object DB_NULL=Convert.DBNull;40
SqlParameter[] para={ new SqlParameter("@AdminName",adminid),41
new SqlParameter("@AdminPwd",adminpwd),42
new SqlParameter("@RoleId",roleid),43
new SqlParameter("@result",SqlDbType.Int,4,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,DB_NULL)44
};45
try46
{47
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AddNewAdmin",para);48
}49
catch50
{51
throw;52
}53

54
//返回操作结果55
return Convert.ToInt32(para[3].Value);56
}57

58
//取出所有用户,返回类型为DataSet,将数据添填充致缓存59
public DataSet GetUserList()60
{61
return DBAccess.BLL.ExecuteDataSet(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetUserList");62
}63

64
//由于订单处理余额问题,管理员手动修改用户帐户余额65
public void UpdateUserIntegral(int userid,double integral)66
{67
SqlParameter[] param={ new SqlParameter("@UserID",userid),68
new SqlParameter("@Integral",integral)69
};70

71
try72
{73
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"UpdateUserIntegral",param);74
}75
catch76
{77
throw;78
}79

80
}81

82
//添加管理员日志,返回为void,参数为管理员编号和日志内容83
public static void InsertAction(int adminID,string actionDetail)84
{85
SqlParameter[] param={ new SqlParameter("@AdminID",adminID),86
new SqlParameter("@ActionDetail",actionDetail)87
};88

89
try90
{91
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"InsertAction",param);92
}93
catch94
{95
throw;96
}97
}98

99
//索引商品列表,返回类型为DataSet,将数据填充至缓存100
public DataSet GetGoodList()101
{102
return DBAccess.BLL.ExecuteDataSet(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetGoodList");103
}104

105
//修改商品单价,参数为商品编号以及新单价106
public void UpdateGoodPrice(int goodID,decimal newPrice)107
{108
SqlParameter[] param={ new SqlParameter("@GoodID",goodID),109
new SqlParameter("@Price",newPrice)110
};111
try112
{113
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"UpdateGoodPrice",param);114
}115
catch116
{117
throw;118
}119
}120

121
//删除选定商品,参数为商品编号122
public void DeleteGood(int goodID)123
{124
SqlParameter[] param={ new SqlParameter("@GoodID",goodID) };125
126
try127
{128
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"DeleteGood",param);129
}130
catch131
{132
throw;133
}134
}135

136
//添加新商品,137
public void AddNewGood(string goodName,int categoryID,decimal price,string goodImage,138
string goodDescription,string autherName,string press,string translator,string ISBN,DateTime pressTime)139
{140
SqlParameter[] param={ new SqlParameter("@GoodName",goodName),141
new SqlParameter("@CategoryID",categoryID),142
new SqlParameter("@Price",price),143
new SqlParameter("@GoodImage",goodImage), 144
new SqlParameter("@GoodDescription",goodDescription),145
new SqlParameter("@AutherName",autherName),146
new SqlParameter("@Press",press),147
new SqlParameter("@Translator",translator),148
new SqlParameter("@ISBN",ISBN),149
new SqlParameter("@PressTime",pressTime)150
};151

152
try153
{154
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AddNewGood",param);155
}156
catch157
{158
throw;159
}160
}161

162
//获取商品类别,返回类型SqlDataReader,为便于使用将其置为静态方法163
public static SqlDataReader GetCategories()164
{165
return DBAccess.BLL.ExecuteReader(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetCategories");166
}167

168
//获取管理员角色类型,返回类型为SqlDataReader,设置为static类型169
public static SqlDataReader GetAdminRoleList()170
{171
return DBAccess.BLL.ExecuteReader(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetAdminRoleList");172
}173

174
//获取管理员列表,若roleID=-1则返回所有管理员,否则返回对应角色管理员信息175
public SqlDataReader GetAdminList(int roleid)176
{177
SqlParameter[] param={ new SqlParameter("@roleid",roleid)};178
return DBAccess.BLL.ExecuteReader(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetAdminList",param);179
}180

181
//通过管理员ID获取管理员日志,按时间倒序排列182
public DataSet GetActionList(int adminID)183
{184
SqlParameter[] param={new SqlParameter("@AdminID",adminID)};185

186
return DBAccess.BLL.ExecuteDataSet(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"GetActionList",param);187
}188

189
//根据管理员ID,删除相应管理员190
public void DeleteAdmin(int adminID)191
{192
SqlParameter[] param={193
new SqlParameter("@AdminID",adminID)194
};195
try196
{197
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"DeleteAdmin",param);198
}199
catch200
{201
throw;202
}203
}204

205
//添加商品类别,参数为categoryname,返回类型为void206
public void AddNewCategory(string categoryName)207
{208
SqlParameter[] param={209
new SqlParameter("@CategoryName",categoryName)210
};211
try212
{213
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"AddNewCategory",param);214
}215
catch216
{217
throw;218
}219
}220
221
//删除商品类别,参数为类别ID,返回类型为void222
public void DeleteCategory(int categoryID)223
{224
SqlParameter[] param={225
new SqlParameter("@CategoryID",categoryID)226
};227
try228
{229
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"DeleteCategory",param);230
}231
catch232
{233
throw;234
}235
}236

237
//修改密码,返回类型为int ,1为成功更改,-1为更改失败238
public int ChangePwd(int adminID,string oldPwd,string newPwd)239
{240
//设定初始值为空,注意为object类型241
object p_DBNull=Convert.DBNull;242
SqlParameter[] param={243
new SqlParameter("@AdminID",adminID),244
new SqlParameter("@OldPwd",oldPwd),245
new SqlParameter("@NewPwd",newPwd),246
new SqlParameter("@Result",SqlDbType.Int,4,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,p_DBNull)247
};248

249
try250
{251
DBAccess.BLL.ExecuteNonQuery(DBAccess.BLL.ConnectString,CommandType.StoredProcedure,"ChangeAdminPwd",param);252
}253
catch254
{255
throw;256
}257

258
//返回插入标志数值259
return Convert.ToInt32(param[3].Value);260
}261
}262
}263



浙公网安备 33010602011771号