ASP.NET2.0网站开发(4)执行数据
在VS的开发环境中,可以有多种方式取得数据集,比如直接添加控件生成、在代码中灵活的使用SqlClient、或者比较麻烦的,就象我的这种取数据的方式,这种方式的优点在做小项目、一个人开发的时候有些麻烦,写的代码量最大,但如果是多人开发的大项目,就显示出了优点。
在对数据的操作过程中,我使用了自己封装的一个数据操作类,具体操作请参考微软提供的商店例子。操作时,将数据库的连接字符串放在Web.config中,根据需要你可以对connectionStrings节进行加密,这取决于你的需要。
<connectionStrings>
<add name="SQLConnectionString1" connectionString="Data Source=.;Initial Catalog=BOOKS;User ID=a;Password=a" providerName="System.Data.SqlClient"/>
<add name="SQLConnectionString2" connectionString=""/>
</connectionStrings>
<add name="SQLConnectionString1" connectionString="Data Source=.;Initial Catalog=BOOKS;User ID=a;Password=a" providerName="System.Data.SqlClient"/>
<add name="SQLConnectionString2" connectionString=""/>
</connectionStrings>
因为功能简单,所有的方法我都放在了一个类中:
1public class DALClass
2{
3 public DALClass()
4 {
5 //
6 //TODO: 在此处添加构造函数逻辑
7 //
8 }
9
10 /// <summary>
11 /// 新增图书
12 /// </summary>
13 /// <param name="mc"></param>
14 public void Books_Insert(ModelClass mc)
15 {
16 SqlParameter[] sp = new SqlParameter[]{
17 new SqlParameter("@mc", SqlDbType.NVarChar, 20),
18 new SqlParameter("@cbs", SqlDbType.NVarChar, 60),
19 new SqlParameter("@dj", SqlDbType.Money),
20 new SqlParameter("@nrty", SqlDbType.NVarChar, 2000),
21 new SqlParameter("@tp", SqlDbType.Image)
22 };
23 sp[0].Value = mc.Mc;
24 sp[1].Value = mc.Cbs;
25 sp[2].Value = mc.Dj;
26 sp[3].Value = mc.Nrty;
27 sp[4].Value = mc.Tp;
28
29 SunnySoft.DBUtility35.SqlHelper.ExecuteNonQuery(SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1,
30 CommandType.StoredProcedure, "Books_AddValue", sp);
31 }
32
33 /// <summary>
34 /// 修改图书
35 /// </summary>
36 /// <param name="mc"></param>
37 public void Books_Update(ModelClass mc)
38 {
39 SqlParameter[] sp = new SqlParameter[]{
40 new SqlParameter("@id", SqlDbType.Int),
41 new SqlParameter("@mc", SqlDbType.NVarChar, 20),
42 new SqlParameter("@cbs", SqlDbType.NVarChar, 60),
43 new SqlParameter("@dj", SqlDbType.Money),
44 new SqlParameter("@nrty", SqlDbType.NVarChar, 2000),
45 new SqlParameter("@tp", SqlDbType.Image)
46 };
47 sp[0].Value = mc.Id;
48 sp[1].Value = mc.Mc;
49 sp[2].Value = mc.Cbs;
50 sp[3].Value = mc.Dj;
51 sp[4].Value = mc.Nrty;
52 sp[5].Value = mc.Tp;
53
54 SunnySoft.DBUtility35.SqlHelper.ExecuteNonQuery(SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1,
55 CommandType.StoredProcedure, "Books_Update", sp);
56 }
57
58 /// <summary>
59 /// 删除图书
60 /// </summary>
61 /// <param name="mc"></param>
62 public void Books_Delete(int id)
63 {
64 SqlParameter sp = new SqlParameter("@id", SqlDbType.Int);
65 sp.Value = id;
66
67 SunnySoft.DBUtility35.SqlHelper.ExecuteNonQuery(SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1,
68 CommandType.StoredProcedure, "Books_Delete", sp);
69 }
70
71 /// <summary>
72 /// 取图书单条记录
73 /// </summary>
74 /// <param name="id">条件ID</param>
75 /// <returns></returns>
76 public ModelClass Books_GetValue(int id)
77 {
78 ModelClass mc = null;
79 SqlParameter sp = new SqlParameter("@id", SqlDbType.Int);
80 sp.Value = id;
81
82 using (SqlDataReader rdr = SunnySoft.DBUtility35.SqlHelper.ExecuteReader(
83 SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1, CommandType.StoredProcedure,
84 "Books_GetValue", sp))
85 {
86 if (rdr.Read())
87 mc = new ModelClass(
88 rdr.GetInt32(0),
89 rdr.GetString(1),
90 rdr.IsDBNull(2) ? "" : rdr.GetString(2),
91 Convert.ToDouble(rdr.GetValue(3)),
92 rdr.IsDBNull(4) ? "" : rdr.GetString(4),
93 rdr.IsDBNull(5) ? new byte[]{} : (byte[])rdr.GetValue(5)
94 );
95 else
96 mc = new ModelClass();
97 }
98 return mc;
99 }
100
101 /// <summary>
102 /// 取图书数据
103 /// </summary>
104 /// <returns></returns>
105 public IList Books_GetValues()
106 {
107 IList list = new List<ModelClass>();
108 using (SqlDataReader rdr = SunnySoft.DBUtility35.SqlHelper.ExecuteReader(
109 SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1, CommandType.StoredProcedure,
110 "Books_GetValues"))
111 {
112 while (rdr.Read())
113 {
114 ModelClass mc = new ModelClass(
115 rdr.GetInt32(0),
116 rdr.GetString(1),
117 rdr.IsDBNull(2) ? "" : rdr.GetString(2),
118 Convert.ToDouble(rdr.GetValue(3)),
119 rdr.IsDBNull(4) ? "" : rdr.GetString(4),
120 new byte[]{}
121 );
122 list.Add(mc);
123 }
124 }
125 return list;
126 }
127
128 /// <summary>
129 /// 登录人员校验
130 /// </summary>
131 /// <param name="dlmc"></param>
132 /// <returns></returns>
133 public UserClass User_GetValue(string dlmc)
134 {
135 UserClass mc = null;
136 SqlParameter sp = new SqlParameter("@dlmc", SqlDbType.NVarChar, 20);
137 sp.Value = dlmc;
138
139 using (SqlDataReader rdr = SunnySoft.DBUtility35.SqlHelper.ExecuteReader(
140 SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1, CommandType.StoredProcedure,
141 "User_GetValue", sp))
142 {
143 if (rdr.Read())
144 mc = new UserClass(
145 rdr.GetInt32(0),
146 rdr.GetString(1),
147 rdr.GetString(2),
148 rdr.GetString(3)
149 );
150 else
151 mc = new UserClass();
152 }
153 return mc;
154
155 }
156}
157
2{
3 public DALClass()
4 {
5 //
6 //TODO: 在此处添加构造函数逻辑
7 //
8 }
9
10 /// <summary>
11 /// 新增图书
12 /// </summary>
13 /// <param name="mc"></param>
14 public void Books_Insert(ModelClass mc)
15 {
16 SqlParameter[] sp = new SqlParameter[]{
17 new SqlParameter("@mc", SqlDbType.NVarChar, 20),
18 new SqlParameter("@cbs", SqlDbType.NVarChar, 60),
19 new SqlParameter("@dj", SqlDbType.Money),
20 new SqlParameter("@nrty", SqlDbType.NVarChar, 2000),
21 new SqlParameter("@tp", SqlDbType.Image)
22 };
23 sp[0].Value = mc.Mc;
24 sp[1].Value = mc.Cbs;
25 sp[2].Value = mc.Dj;
26 sp[3].Value = mc.Nrty;
27 sp[4].Value = mc.Tp;
28
29 SunnySoft.DBUtility35.SqlHelper.ExecuteNonQuery(SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1,
30 CommandType.StoredProcedure, "Books_AddValue", sp);
31 }
32
33 /// <summary>
34 /// 修改图书
35 /// </summary>
36 /// <param name="mc"></param>
37 public void Books_Update(ModelClass mc)
38 {
39 SqlParameter[] sp = new SqlParameter[]{
40 new SqlParameter("@id", SqlDbType.Int),
41 new SqlParameter("@mc", SqlDbType.NVarChar, 20),
42 new SqlParameter("@cbs", SqlDbType.NVarChar, 60),
43 new SqlParameter("@dj", SqlDbType.Money),
44 new SqlParameter("@nrty", SqlDbType.NVarChar, 2000),
45 new SqlParameter("@tp", SqlDbType.Image)
46 };
47 sp[0].Value = mc.Id;
48 sp[1].Value = mc.Mc;
49 sp[2].Value = mc.Cbs;
50 sp[3].Value = mc.Dj;
51 sp[4].Value = mc.Nrty;
52 sp[5].Value = mc.Tp;
53
54 SunnySoft.DBUtility35.SqlHelper.ExecuteNonQuery(SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1,
55 CommandType.StoredProcedure, "Books_Update", sp);
56 }
57
58 /// <summary>
59 /// 删除图书
60 /// </summary>
61 /// <param name="mc"></param>
62 public void Books_Delete(int id)
63 {
64 SqlParameter sp = new SqlParameter("@id", SqlDbType.Int);
65 sp.Value = id;
66
67 SunnySoft.DBUtility35.SqlHelper.ExecuteNonQuery(SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1,
68 CommandType.StoredProcedure, "Books_Delete", sp);
69 }
70
71 /// <summary>
72 /// 取图书单条记录
73 /// </summary>
74 /// <param name="id">条件ID</param>
75 /// <returns></returns>
76 public ModelClass Books_GetValue(int id)
77 {
78 ModelClass mc = null;
79 SqlParameter sp = new SqlParameter("@id", SqlDbType.Int);
80 sp.Value = id;
81
82 using (SqlDataReader rdr = SunnySoft.DBUtility35.SqlHelper.ExecuteReader(
83 SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1, CommandType.StoredProcedure,
84 "Books_GetValue", sp))
85 {
86 if (rdr.Read())
87 mc = new ModelClass(
88 rdr.GetInt32(0),
89 rdr.GetString(1),
90 rdr.IsDBNull(2) ? "" : rdr.GetString(2),
91 Convert.ToDouble(rdr.GetValue(3)),
92 rdr.IsDBNull(4) ? "" : rdr.GetString(4),
93 rdr.IsDBNull(5) ? new byte[]{} : (byte[])rdr.GetValue(5)
94 );
95 else
96 mc = new ModelClass();
97 }
98 return mc;
99 }
100
101 /// <summary>
102 /// 取图书数据
103 /// </summary>
104 /// <returns></returns>
105 public IList Books_GetValues()
106 {
107 IList list = new List<ModelClass>();
108 using (SqlDataReader rdr = SunnySoft.DBUtility35.SqlHelper.ExecuteReader(
109 SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1, CommandType.StoredProcedure,
110 "Books_GetValues"))
111 {
112 while (rdr.Read())
113 {
114 ModelClass mc = new ModelClass(
115 rdr.GetInt32(0),
116 rdr.GetString(1),
117 rdr.IsDBNull(2) ? "" : rdr.GetString(2),
118 Convert.ToDouble(rdr.GetValue(3)),
119 rdr.IsDBNull(4) ? "" : rdr.GetString(4),
120 new byte[]{}
121 );
122 list.Add(mc);
123 }
124 }
125 return list;
126 }
127
128 /// <summary>
129 /// 登录人员校验
130 /// </summary>
131 /// <param name="dlmc"></param>
132 /// <returns></returns>
133 public UserClass User_GetValue(string dlmc)
134 {
135 UserClass mc = null;
136 SqlParameter sp = new SqlParameter("@dlmc", SqlDbType.NVarChar, 20);
137 sp.Value = dlmc;
138
139 using (SqlDataReader rdr = SunnySoft.DBUtility35.SqlHelper.ExecuteReader(
140 SunnySoft.DBUtility35.SqlHelper.SQLConnectionString1, CommandType.StoredProcedure,
141 "User_GetValue", sp))
142 {
143 if (rdr.Read())
144 mc = new UserClass(
145 rdr.GetInt32(0),
146 rdr.GetString(1),
147 rdr.GetString(2),
148 rdr.GetString(3)
149 );
150 else
151 mc = new UserClass();
152 }
153 return mc;
154
155 }
156}
157
在此类的方法中,调用前面写的存储过程,返回相应的数据。方法写完后,可以使用NUnit或者VS提供的测试类,对方法进行测试。