CSDN博客

img coofucoo
博客专家

一步一步打造3层架构在线电影网站!(4)系统设计

发表于2004/12/28 23:29:00  1770人阅读

1、          数据层

   数据层由四个类组成,其中两个位信息承载类,MovieDetails and CategoryDetails,只有属性,无任何方法,分别代表表moviescategories中某行。另外两个为基本数据操作类,提供相应的具体数据操作,分别为:Movies and Categories

    以下分别用类图表示四个类的具体情况:

MovieDetails

+ movie_idint

+ 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():<unspecified>

+GetAllMovies():<unspecified>

+GetMoviesByCount():<unspecified>

+GetHeadlines():<unspecified>

+GetGetMovieDetails():<unspecified>

+GetDetailsRow():<unspecified>

+Add():int

+Update():bool

+Delete():bool

+AddViewcount():bool

 

Categories

 

+Categories(in connectionString:string)

+GetCategories():<unspecified>

+GetCategoryName():<unspecified>

+GetCategoryDetails():<unspecified>

+GetDetailsRow():<unspecified>

+Add():int

+Update():bool

+Delete():bool

    以下详细描述两个基本数据操作类的方法:

Movies

方法详情

描述

public Movies( string newConnectiionString)

类构造函数,以连接字符串作为参数

public DataSet GetMovies(int category_id)

返回指定类型的所有电影条目

public DataSet GetHeadines(int category_id)

返回指定类型条目的所有电影条目的movie_idtitleuptimeviewcountimage

public DataSet GetAllMovies()

以上传时间为顺序返回所有电影信息

public DataSet GetMoviesByCount()

以点击率为顺序返回所有电影信息

public DataSet GetHeadlines(int category_id)

返回某一分类的电影头信息

public MoviesDetails GetMovieDetails(int movie_id)

返回一个由movie_id指定的电影条目的具体内容

public DataRow GetDetailsRow(int movie_id)

返回电影详细信息的DataRow

public int Add(int category_id,string level,string title,string intro,datetime uptime,datetime showtime,string image,string address)

添加新的电影条目,如果成功则返回新的movie_id,如果有重复记录,则返回-1

public bool Update(int movie_id,int category_id,string level,string title,string intro,datetime showtime, string image,string address)

更新指定电影条目的相关信息

public bool Delete(int movie_id)

删除指定的电影条目

public bool AddViewcount(int movie_id)

给指定的电影条目增加1单位访问量

Categories

方法详情

描述

public Categories( string newConnectiionString)

类构造函数,以连接字符串作为参数

public DataSet GetCategories()

返回包含所有分类的DataSet

public DataSet GetCategoryName()

返回所有分类的名称和编号

public CategoryDetails  GetCategoryDetails(int category_id)

返回描述指定分类的CategoryDetails实例

public DataRow GetDetailsRow(int category_id)

返回指定ID分类条目的DataRow

public int Add(string name,string category_intro)

添加新的分类条目,如果成功则返回新的category_id,如果有重复记录,则返回-1

public bool Update(int category_id,string name,string category_intro)

更新指定分类条目的详细信息

public bool Delete(int category_id)

删除指定分类条目


Movies:
using System;
using System.Data;
using System.Data.SqlClient;

namespace Coofucoo.Data
{
 public class MovieDetails
 {
  public int movie_id;
  public int category_id;
  public string level;
  public string title;
  public string intro;
  public DateTime uptime;
  public DateTime showtime;
  public int viewcount;
  public string image;
  public string address;
 }

 public class Movies : Coofucoo.Core.DbObject
 {
  public Movies(string newConnectionString) : base(newConnectionString)
  { }

  // return all the Movie of the specified category
  public DataSet GetMovies(int category_id)
  {
   // create the parameters
   SqlParameter[] parameters = {
           new SqlParameter("@category_id", SqlDbType.Int, 4)
          };
   
   // set the values
   parameters[0].Value = category_id;
   
   return RunProcedure("GetMovies", parameters, "movies");
  }

  // return all the Movie order by upload time
  public DataSet GetAllMovies()
  {   
   return RunProcedure("GetAllMovies",new IDataParameter[]{},"movies");
  }

  public DataSet GetMoviesByCount()
  {
   return RunProcedure("GetMoviesByCount",new IDataParameter[]{},"MoviesByCount");
  }

  // return the headlines for the current and approved Movie
  public DataSet GetHeadlines(int category_id)
  {
   // create the parameter
   SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
   parameters[0].Value = category_id;
   
   return RunProcedure("GetHeadines", parameters, "Headlines");
  }


  // return only the record with the specified ID
  public MovieDetails GetMovieDetails(int movie_id)
  {
   // create the parameter
   SqlParameter[] parameters = { new SqlParameter("@movie_id", SqlDbType.Int, 4) };
   parameters[0].Value = movie_id;
   
   using(DataSet Movie = RunProcedure("GetMovieDetails", parameters, "MovieDetails"))
   {
    MovieDetails details = new MovieDetails();
    // if the record was found, set the properties of the class instance
    if (Movie.Tables[0].Rows.Count > 0)
    {
     DataRow rowMovie = Movie.Tables[0].Rows[0];
     details.movie_id = Convert.ToInt32(rowMovie["movie_id"]);
     details.category_id = Convert.ToInt32(rowMovie["category_id"]);
     details.level = rowMovie["levell"].ToString();
     details.title = rowMovie["title"].ToString();
     details.intro = rowMovie["intro"].ToString();
     details.uptime = Convert.ToDateTime(rowMovie["uptime"]);
     details.showtime = Convert.ToDateTime(rowMovie["showtime"]);
     details.viewcount = Convert.ToInt32(rowMovie["viewcount"]);
     details.image = rowMovie["image"].ToString();
     details.address = rowMovie["address"].ToString();
    }
    else
     details.movie_id = -1;

    return details;
   }
  }

  // return only the record with the specified ID
  public DataRow GetDetailsRow(int movie_id)
  {
   // create the parameter
   SqlParameter[] parameters = { new SqlParameter("@movie_id", SqlDbType.Int, 4) };
   parameters[0].Value = movie_id;
   
   using(DataSet Movie = RunProcedure("GetMovieDetails", parameters, "MovieDetailsRow"))
   {
    return Movie.Tables[0].Rows[0];
   }
  }


  // delete the record identified by the specified ID
  public bool Delete(int movie_id)
  {
   int numAffected;
  
   // create the parameter
   SqlParameter[] parameters = { new SqlParameter("@movie_id", SqlDbType.Int, 4) };
   parameters[0].Value = movie_id;
   
   RunProcedure("DeleteMovie", parameters, out numAffected);

   return (numAffected == 1);
  }


  // update the Movie identified by the specified ID
  public bool Update(int movie_id, int category_id, string level, string title, string intro,
   DateTime showtime, string image, string address)
  {
   int numAffected;
  
   // create the parameters
   SqlParameter[] parameters = {
           new SqlParameter("@movie_id", SqlDbType.Int, 4),
           new SqlParameter("@category_id", SqlDbType.Int, 4),
           new SqlParameter("@levell", SqlDbType.NVarChar, 50),
           new SqlParameter("@title", SqlDbType.NVarChar, 50),
           new SqlParameter("@intro", SqlDbType.Text),
           new SqlParameter("@showtime", SqlDbType.DateTime),
           new SqlParameter("@image", SqlDbType.NVarChar, 100),
           new SqlParameter("@address", SqlDbType.NVarChar, 100),
          };
   
   // set the values
   parameters[0].Value = movie_id;
   parameters[1].Value = category_id;
   parameters[2].Value = level.Trim();
   parameters[3].Value = title.Trim();
   parameters[4].Value = intro.Trim();
   parameters[5].Value = showtime;
   parameters[6].Value = image.Trim();
   parameters[7].Value = address.Trim();

   RunProcedure("UpdateMovie", parameters, out numAffected);

   return (numAffected == 1);
  }

  
  // add a Movie
  public int Add(int category_id, string level, string title, string intro,
   DateTime uptime, DateTime showtime, string image, string address)
  {
   int numAffected;
  
   // create the parameters
   SqlParameter[] parameters = {
           new SqlParameter("@category_id", SqlDbType.Int, 4),
           new SqlParameter("@level", SqlDbType.NVarChar, 50),
           new SqlParameter("@title", SqlDbType.NVarChar, 50),
           new SqlParameter("@intro", SqlDbType.Text),
           new SqlParameter("@uptime", SqlDbType.DateTime),
           new SqlParameter("@showtime", SqlDbType.DateTime),
           new SqlParameter("@image", SqlDbType.NVarChar, 100),
           new SqlParameter("@address", SqlDbType.NVarChar, 100),
           new SqlParameter("@movie_id", SqlDbType.Int, 4)
          };
   
   // set the values
   parameters[0].Value = category_id;
   parameters[1].Value = level.Trim();
   parameters[2].Value = title.Trim();
   parameters[3].Value = intro.Trim();
   parameters[4].Value = uptime;
   parameters[5].Value = showtime;
   parameters[6].Value = image.Trim();
   parameters[7].Value = address.Trim();
   parameters[8].Direction = ParameterDirection.Output;

   RunProcedure("InsertMovie", parameters, out numAffected);

   return (int)parameters[8].Value;
  }

  
  // set the Viewcount++
  public bool AddViewcount(int movie_id)
  {
   int numAffected;
  
   // create the parameters
   SqlParameter[] parameters = {
           new SqlParameter("@movie_id", SqlDbType.Int, 4)
          };

   // set the values
   parameters[0].Value = movie_id;

   RunProcedure("AddViewcount", parameters, out numAffected);

   return (numAffected == 1);
  }

 }
}

Categories:
using System;
using System.Data;
using System.Data.SqlClient;

namespace Coofucoo.Data
{
 public class CategoryDetails
 {
  public int category_id;
  public string name;
  public string category_intro;
 }

 public class Categories : Coofucoo.Core.DbObject
 {
  public Categories(string newConnectionString) : base(newConnectionString)
  { }

  // return all the Categories
  public DataSet GetCategories()
  {
   return RunProcedure("GetCategories", new IDataParameter[]{}, "Categories");
  }

  // return all name of the Categories
  public DataSet GetCategoryName()
  {
   return RunProcedure("GetCategoryName", new IDataParameter[]{}, "CategoryName");
  }


  // return only the record with the specified ID
  public CategoryDetails GetCategoryDetails(int category_id)
  {
   // create the parameter
   SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
   parameters[0].Value = category_id;

   using(DataSet categories = RunProcedure("GetCategoryDetails", parameters, "CategoryDetails"))
   {
    CategoryDetails details = new CategoryDetails();
    // if the record was found, set the properties of the class instance
    if (categories.Tables[0].Rows.Count > 0)
    {
     DataRow rowCategory = categories.Tables[0].Rows[0];
     details.category_id = (int)rowCategory["category_id"];
     details.name = rowCategory["name"].ToString();
     details.category_intro = rowCategory["category_intro"].ToString();
    }
    else
     details.category_id = -1;

    return details;
   }
  }

  // return only the record with the specified ID
  public DataRow GetDetailsRow(int category_id)
  {
   // create the parameter
   SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
   parameters[0].Value = category_id;

   using(DataSet categories = RunProcedure("GetCategoryDetails", parameters, "CategoryDetails"))
   {
    return categories.Tables[0].Rows[0];
   }
  }


  // delete the record identified by the specified ID
  public bool Delete(int category_id)
  {
   int numAffected;
  
   // create the parameter
   SqlParameter[] parameters = { new SqlParameter("@category_id", SqlDbType.Int, 4) };
   parameters[0].Value = category_id;
   
   RunProcedure("DeleteCategory", parameters, out numAffected);

   return (numAffected == 1);
  }


  // update Name, Description and ImageUrl of the record identified by the specified ID
  public bool Update(int category_id, string name, string category_intro)
  {
   int numAffected;
  
   // create the parameters
   SqlParameter[] parameters = {
           new SqlParameter("@category_id", SqlDbType.Int, 4),
           new SqlParameter("@name", SqlDbType.NVarChar, 50),
           new SqlParameter("@category_intro", SqlDbType.NVarChar, 100),
          };
   // set the values
   parameters[0].Value = category_id;
   parameters[1].Value = name.Trim();
   parameters[2].Value = category_intro.Trim();

   RunProcedure("UpdateCategory", parameters, out numAffected);

   return (numAffected == 1);
  }

  
  // add a new category
  public int Add(string name, string category_intro)
  {
   int numAffected;
 
   // create the parameters
   SqlParameter[] parameters = {
           new SqlParameter("@name", SqlDbType.VarChar, 50),
           new SqlParameter("@category_intro", SqlDbType.VarChar, 100),
           new SqlParameter("@category_id", SqlDbType.Int, 4),
   }; 
   
   // set the values
   parameters[0].Value = name.Trim();
   parameters[1].Value = category_intro.Trim();
   parameters[2].Direction = ParameterDirection.Output;
   
   // run the procedure
   RunProcedure("InsertCategory", parameters, out numAffected);

   return (int)parameters[2].Value;
  }

 }
}

0 0

相关博文

我的热门文章

img
取 消
img即使是一小步
也想与你分享
打开
img