1、 数据层
**** 数据层由四个类组成,其中两个位信息承载类, MovieDetails and CategoryDetails ,只有属性,无任何方法,分别代表表 movies 和 categories 中某行。另外两个为基本数据操作类,提供相应的具体数据操作,分别为 :Movies and Categories 。
以下分别用类图表示四个类的具体情况:
MovieDetails
+ movie_id : int
+ category_id:int
+ level:string
+ title:string
+ intro:string
+ uptime: DateTime
+ showtime: DateTime
+ viewcount:int
+ image:string
+ address:string
CategoryDetails
+ category_id:int
+ name:string
+ category_intro:string
Movie
+Movies(in connectionString:string)
+GetMovies():
1<unspecified>
2
3\+ GetAllMovies(): <unspecified>
4
5\+ GetMoviesByCount(): <unspecified>
6
7+GetHeadlines():<unspecified>
8
9+Get GetMovieDetails ():<unspecified>
10
11+GetDetailsRow():<unspecified>
12
13+Add():int
14
15+Update():bool
16
17+Delete():bool
18
19+AddViewcount():bool
20
21Categories
22
23---
24
25+Categories(in connectionString:string)
26
27+GetCategories():<unspecified>
28
29\+ GetCategoryName(): <unspecified>
30
31\+ GetCategoryDetails ():<unspecified>
32
33+GetDetailsRow():<unspecified>
34
35+Add():int
36
37+Update():bool
38
39+Delete():bool
40
41以下详细描述两个基本数据操作类的方法:
42
43Movies :
44
45方法详情
46
47|
48
49描述
50
51---|---
52
53public Movies( string newConnectiionString)
54
55|
56
57类构造函数,以连接字符串作为参数
58
59public DataSet GetMovies(int category_id)
60
61|
62
63返回指定类型的所有电影条目
64
65public DataSet GetHeadines(int category_id)
66
67|
68
69返回指定类型条目的所有电影条目的 movie_id 、 title 、 uptime 、 viewcount 、 image
70
71public DataSet GetAllMovies()
72
73|
74
75以上传时间为顺序返回所有电影信息
76
77public DataSet GetMoviesByCount()
78
79|
80
81以点击率为顺序返回所有电影信息
82
83public DataSet GetHeadlines(int category_id)
84
85|
86
87返回某一分类的电影头信息
88
89public MoviesDetails GetMovieDetails(int movie_id)
90
91|
92
93返回一个由 movie_id 指定的电影条目的具体内容
94
95public DataRow GetDetailsRow(int movie_id)
96
97|
98
99返回电影详细信息的 DataRow
100
101public int Add(int category_id,string level,string title,string intro,datetime uptime,datetime showtime,string image,string address)
102
103|
104
105添加新的电影条目,如果成功则返回新的 movie_id ,如果有重复记录,则返回 -1
106
107public bool Update(int movie_id,int category_id,string level,string title,string intro,datetime showtime, string image,string address)
108
109|
110
111更新指定电影条目的相关信息
112
113public bool Delete(int movie_id)
114
115|
116
117删除指定的电影条目
118
119public bool AddViewcount(int movie_id)
120
121|
122
123给指定的电影条目增加1单位访问量
124
125Categories :
126
127方法详情
128
129|
130
131描述
132
133---|---
134
135public Categories( string newConnectiionString)
136
137|
138
139类构造函数,以连接字符串作为参数
140
141public DataSet GetCategories()
142
143|
144
145返回包含所有分类的 DataSet
146
147public DataSet GetCategoryName()
148
149|
150
151返回所有分类的名称和编号
152
153public CategoryDetails GetCategoryDetails(int category_id)
154
155|
156
157返回描述指定分类的 CategoryDetails 实例
158
159public DataRow GetDetailsRow(int category_id)
160
161|
162
163返回指定ID分类条目的 DataRow
164
165public int Add(string name,string category_intro)
166
167|
168
169添加新的分类条目,如果成功则返回新的 category_id ,如果有重复记录,则返回 -1
170
171public bool Update(int category_id,string name,string category_intro)
172
173|
174
175更新指定分类条目的详细信息
176
177public bool Delete(int category_id)
178
179|
180
181删除指定分类条目
182
183
184** Movies: **
185using System;
186using System.Data;
187using System.Data.SqlClient;
188
189namespace Coofucoo.Data
190{
191public class MovieDetails
192{
193public int movie_id;
194public int category_id;
195public string level;
196public string title;
197public string intro;
198public DateTime uptime;
199public DateTime showtime;
200public int viewcount;
201public string image;
202public string address;
203}
204
205public class Movies : Coofucoo.Core.DbObject
206{
207public Movies(string newConnectionString) : base(newConnectionString)
208{ }
209
210// return all the Movie of the specified category
211public DataSet GetMovies(int category_id)
212{
213// create the parameters
214SqlParameter[] parameters = {
215new SqlParameter("@category_id", SqlDbType.Int, 4)
216};
217
218// set the values
219parameters[0].Value = category_id;
220
221return RunProcedure("GetMovies", parameters, "movies");
222}
223
224// return all the Movie order by upload time
225public DataSet GetAllMovies()
226{
227return RunProcedure("GetAllMovies",new IDataParameter[]{},"movies");
228}
229
230public DataSet GetMoviesByCount()
231{
232return RunProcedure("GetMoviesByCount",new IDataParameter[]{},"MoviesByCount");
233}
234
235// return the headlines for the current and approved Movie
236public DataSet GetHeadlines(int category_id)
237{
238// create the parameter
239SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
240parameters[0].Value = category_id;
241
242return RunProcedure("GetHeadines", parameters, "Headlines");
243}
244
245
246// return only the record with the specified ID
247public MovieDetails GetMovieDetails(int movie_id)
248{
249// create the parameter
250SqlParameter[] parameters = { new SqlParameter("@movie_id", SqlDbType.Int, 4) };
251parameters[0].Value = movie_id;
252
253using(DataSet Movie = RunProcedure("GetMovieDetails", parameters, "MovieDetails"))
254{
255MovieDetails details = new MovieDetails();
256// if the record was found, set the properties of the class instance
257if (Movie.Tables[0].Rows.Count > 0)
258{
259DataRow rowMovie = Movie.Tables[0].Rows[0];
260details.movie_id = Convert.ToInt32(rowMovie["movie_id"]);
261details.category_id = Convert.ToInt32(rowMovie["category_id"]);
262details.level = rowMovie["levell"].ToString();
263details.title = rowMovie["title"].ToString();
264details.intro = rowMovie["intro"].ToString();
265details.uptime = Convert.ToDateTime(rowMovie["uptime"]);
266details.showtime = Convert.ToDateTime(rowMovie["showtime"]);
267details.viewcount = Convert.ToInt32(rowMovie["viewcount"]);
268details.image = rowMovie["image"].ToString();
269details.address = rowMovie["address"].ToString();
270}
271else
272details.movie_id = -1;
273
274return details;
275}
276}
277
278// return only the record with the specified ID
279public DataRow GetDetailsRow(int movie_id)
280{
281// create the parameter
282SqlParameter[] parameters = { new SqlParameter("@movie_id", SqlDbType.Int, 4) };
283parameters[0].Value = movie_id;
284
285using(DataSet Movie = RunProcedure("GetMovieDetails", parameters, "MovieDetailsRow"))
286{
287return Movie.Tables[0].Rows[0];
288}
289}
290
291
292// delete the record identified by the specified ID
293public bool Delete(int movie_id)
294{
295int numAffected;
296
297// create the parameter
298SqlParameter[] parameters = { new SqlParameter("@movie_id", SqlDbType.Int, 4) };
299parameters[0].Value = movie_id;
300
301RunProcedure("DeleteMovie", parameters, out numAffected);
302
303return (numAffected == 1);
304}
305
306
307// update the Movie identified by the specified ID
308public bool Update(int movie_id, int category_id, string level, string title, string intro,
309DateTime showtime, string image, string address)
310{
311int numAffected;
312
313// create the parameters
314SqlParameter[] parameters = {
315new SqlParameter("@movie_id", SqlDbType.Int, 4),
316new SqlParameter("@category_id", SqlDbType.Int, 4),
317new SqlParameter("@levell", SqlDbType.NVarChar, 50),
318new SqlParameter("@title", SqlDbType.NVarChar, 50),
319new SqlParameter("@intro", SqlDbType.Text),
320new SqlParameter("@showtime", SqlDbType.DateTime),
321new SqlParameter("@image", SqlDbType.NVarChar, 100),
322new SqlParameter("@address", SqlDbType.NVarChar, 100),
323};
324
325// set the values
326parameters[0].Value = movie_id;
327parameters[1].Value = category_id;
328parameters[2].Value = level.Trim();
329parameters[3].Value = title.Trim();
330parameters[4].Value = intro.Trim();
331parameters[5].Value = showtime;
332parameters[6].Value = image.Trim();
333parameters[7].Value = address.Trim();
334
335RunProcedure("UpdateMovie", parameters, out numAffected);
336
337return (numAffected == 1);
338}
339
340
341// add a Movie
342public int Add(int category_id, string level, string title, string intro,
343DateTime uptime, DateTime showtime, string image, string address)
344{
345int numAffected;
346
347// create the parameters
348SqlParameter[] parameters = {
349new SqlParameter("@category_id", SqlDbType.Int, 4),
350new SqlParameter("@level", SqlDbType.NVarChar, 50),
351new SqlParameter("@title", SqlDbType.NVarChar, 50),
352new SqlParameter("@intro", SqlDbType.Text),
353new SqlParameter("@uptime", SqlDbType.DateTime),
354new SqlParameter("@showtime", SqlDbType.DateTime),
355new SqlParameter("@image", SqlDbType.NVarChar, 100),
356new SqlParameter("@address", SqlDbType.NVarChar, 100),
357new SqlParameter("@movie_id", SqlDbType.Int, 4)
358};
359
360// set the values
361parameters[0].Value = category_id;
362parameters[1].Value = level.Trim();
363parameters[2].Value = title.Trim();
364parameters[3].Value = intro.Trim();
365parameters[4].Value = uptime;
366parameters[5].Value = showtime;
367parameters[6].Value = image.Trim();
368parameters[7].Value = address.Trim();
369parameters[8].Direction = ParameterDirection.Output;
370
371RunProcedure("InsertMovie", parameters, out numAffected);
372
373return (int)parameters[8].Value;
374}
375
376
377// set the Viewcount++
378public bool AddViewcount(int movie_id)
379{
380int numAffected;
381
382// create the parameters
383SqlParameter[] parameters = {
384new SqlParameter("@movie_id", SqlDbType.Int, 4)
385};
386
387// set the values
388parameters[0].Value = movie_id;
389
390RunProcedure("AddViewcount", parameters, out numAffected);
391
392return (numAffected == 1);
393}
394
395}
396}
397
398**Categories:
399** using System;
400using System.Data;
401using System.Data.SqlClient;
402namespace Coofucoo.Data
403{
404public class CategoryDetails
405{
406public int category_id;
407public string name;
408public string category_intro;
409}
410
411public class Categories : Coofucoo.Core.DbObject
412{
413public Categories(string newConnectionString) : base(newConnectionString)
414{ }
415
416// return all the Categories
417public DataSet GetCategories()
418{
419return RunProcedure("GetCategories", new IDataParameter[]{}, "Categories");
420}
421
422// return all name of the Categories
423public DataSet GetCategoryName()
424{
425return RunProcedure("GetCategoryName", new IDataParameter[]{}, "CategoryName");
426}
427
428
429// return only the record with the specified ID
430public CategoryDetails GetCategoryDetails(int category_id)
431{
432// create the parameter
433SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
434parameters[0].Value = category_id;
435
436using(DataSet categories = RunProcedure("GetCategoryDetails", parameters, "CategoryDetails"))
437{
438CategoryDetails details = new CategoryDetails();
439// if the record was found, set the properties of the class instance
440if (categories.Tables[0].Rows.Count > 0)
441{
442DataRow rowCategory = categories.Tables[0].Rows[0];
443details.category_id = (int)rowCategory["category_id"];
444details.name = rowCategory["name"].ToString();
445details.category_intro = rowCategory["category_intro"].ToString();
446}
447else
448details.category_id = -1;
449
450return details;
451}
452}
453
454// return only the record with the specified ID
455public DataRow GetDetailsRow(int category_id)
456{
457// create the parameter
458SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
459parameters[0].Value = category_id;
460
461using(DataSet categories = RunProcedure("GetCategoryDetails", parameters, "CategoryDetails"))
462{
463return categories.Tables[0].Rows[0];
464}
465}
466
467
468// delete the record identified by the specified ID
469public bool Delete(int category_id)
470{
471int numAffected;
472
473// create the parameter
474SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
475parameters[0].Value = category_id;
476
477RunProcedure("DeleteCategory", parameters, out numAffected);
478
479return (numAffected == 1);
480}
481
482
483// update Name, Description and ImageUrl of the record identified by the specified ID
484public bool Update(int category_id, string name, string category_intro)
485{
486int numAffected;
487
488// create the parameters
489SqlParameter[] parameters = {
490new SqlParameter("@category_id", SqlDbType.Int, 4),
491new SqlParameter("@name", SqlDbType.NVarChar, 50),
492new SqlParameter("@category_intro", SqlDbType.NVarChar, 100),
493};
494// set the values
495parameters[0].Value = category_id;
496parameters[1].Value = name.Trim();
497parameters[2].Value = category_intro.Trim();
498
499RunProcedure("UpdateCategory", parameters, out numAffected);
500
501return (numAffected == 1);
502}
503
504
505// add a new category
506public int Add(string name, string category_intro)
507{
508int numAffected;
509
510// create the parameters
511SqlParameter[] parameters = {
512new SqlParameter("@name", SqlDbType.VarChar, 50),
513new SqlParameter("@category_intro", SqlDbType.VarChar, 100),
514new SqlParameter("@category_id", SqlDbType.Int, 4),
515};
516
517// set the values
518parameters[0].Value = name.Trim();
519parameters[1].Value = category_intro.Trim();
520parameters[2].Direction = ParameterDirection.Output;
521
522// run the procedure
523RunProcedure("InsertCategory", parameters, out numAffected);
524
525return (int)parameters[2].Value;
526}
527
528}
529}</unspecified></unspecified></unspecified></unspecified></unspecified></unspecified></unspecified></unspecified></unspecified></unspecified>