当前位置: 代码迷 >> Sql Server >> 录播教室预约系统(3)-DepTable表[普通表]
  详细解决方案

录播教室预约系统(3)-DepTable表[普通表]

热度:78   发布时间:2016-04-24 09:24:22.0
录播教室预约系统(三)-DepTable表[普通表]

DepTable表  主要作用 存放单位名称

如图:

 

模板下载地址 CodeSmith版本为v6.5

第一步:用CodeSmith模板生成DepTable表相关的存储过程

生成的存储过程如下: 

/****** Object:  Stored Procedure [dbo].DepTable_Delete    Script Date: 2015年2月8日 ******/if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[DepTable_Delete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[DepTable_Delete]GO/****** Object:  Stored Procedure [dbo].DepTable_SelectOne    Script Date: 2015年2月8日 ******/if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[DepTable_SelectOne]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[DepTable_SelectOne]GO /****** Object:  Stored Procedure [dbo].DepTable_GetCount    Script Date: 2015年2月8日 ******/if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[DepTable_GetCount]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[DepTable_GetCount]GO /****** Object:  Stored Procedure [dbo].DepTable_SelectAll    Script Date: 2015年2月8日 ******/if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[DepTable_SelectAll]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[DepTable_SelectAll]GO/****** Object:  Stored Procedure [dbo].DepTable_Insert    Script Date: 2015年2月8日 ******/if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[DepTable_Insert]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[DepTable_Insert]GO/****** Object:  Stored Procedure [dbo].DepTable_Update    Script Date: 2015年2月8日 ******/if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[DepTable_Update]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[DepTable_Update]GOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER ON GOCREATE PROCEDURE [dbo].DepTable_Delete/*Author:               msdcCreated:             2015-2-8Last Modified:         2015-2-8*/@Id intASDELETE FROM [dbo].[DepTable]WHERE    [Id] = @IdGOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER ON GOCREATE PROCEDURE [dbo].DepTable_GetCount/*Author:               msdcCreated:             2015-2-8Last Modified:         2015-2-8*/ASSELECT COUNT(*) FROM [dbo].[DepTable]GOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER OFF GO SET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS OFF GOCREATE PROCEDURE [dbo].DepTable_SelectOne/*Author:               msdcCreated:             2015-2-8Last Modified:         2015-2-8*/@Id intASSELECT        [Id],        [Department]        FROM        [dbo].[DepTable]        WHERE        [Id] = @IdGOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER ON GOCREATE PROCEDURE [dbo].DepTable_SelectAll/*Author:               msdcCreated:             2015-2-8Last Modified:         2015-2-8*/ASSELECT        [Id],        [Department]        FROM        [dbo].[DepTable]GOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER ON GOCREATE PROCEDURE [dbo].DepTable_Insert/*Author:               msdcCreated:             2015-2-8Last Modified:         2015-2-8*/@Department nvarchar(200)    ASINSERT INTO     [dbo].[DepTable] (                [Department]) VALUES (                @Department                )SELECT @@IDENTITY GOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER ON GOCREATE PROCEDURE [dbo].DepTable_Update/*Author:               msdcCreated:             2015-2-8Last Modified:         2015-2-8*/    @Id int, @Department nvarchar(200) ASUPDATE         [dbo].[DepTable] SET            [Department] = @Department            WHERE            [Id] = @IdGOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER OFF GO/****** Object:  Stored Procedure [dbo].DepTable_SelectPage   Script Date: 2015年2月8日 ******/if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[DepTable_SelectPage]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[DepTable_SelectPage]GOCREATE PROCEDURE [dbo].DepTable_SelectPage-- Author:               msdc-- Created:             2015-2-8-- Last Modified:         2015-2-8@PageNumber             int,@PageSize             intASDECLARE @PageLowerBound intDECLARE @PageUpperBound intSET @PageLowerBound = (@PageSize * @PageNumber) - @PageSizeSET @PageUpperBound = @PageLowerBound + @PageSize + 1/*Note: temp tables use the server default for collation not the database defaultso if adding character columns be sure and specify to use the database collation like thisto avoid collation errors:CREATE TABLE #PageIndexForUsers(IndexID int IDENTITY (1, 1) NOT NULL,UserName nvarchar(50) COLLATE DATABASE_DEFAULT,LoginName nvarchar(50) COLLATE DATABASE_DEFAULT) */CREATE TABLE #PageIndex (    IndexID int IDENTITY (1, 1) NOT NULL,Id Int)BEGININSERT INTO #PageIndex ( Id)SELECT        [Id]        FROM        [dbo].[DepTable]        -- WHERE-- ORDER BYENDSELECT        t1.*        FROM        [dbo].[DepTable] t1JOIN            #PageIndex t2ON                    t1.[Id] = t2.[Id]        WHERE        t2.IndexID > @PageLowerBound         AND t2.IndexID < @PageUpperBound        ORDER BY t2.IndexIDDROP TABLE #PageIndexGOSET ANSI_NULLS OFF GOSET QUOTED_IDENTIFIER OFF GO
模板生成的DepTable表相关的基础存储过程

 

DepTable_Insert  插入数据
DepTable_Update  更新数据

DepTable_SelectPage  获取分页数据

DepTable_SelectAll   获取所有数据

DepTable_SelectOne  获取某个数据

DepTable_GetCount 获取数量

DepTable_Delete 删除某个数据

 

第二步:用codesmith模板生成数据层代码:

 

// Author:                    msdc// Created:                    2015-2-8// Last Modified:            2015-2-8 using System;using System.IO;using System.Text;using System.Data;using System.Data.Common;using System.Data.SqlClient;using System.Configuration;using mojoPortal.Data;    namespace mojoPortal.Data{        public static class DBDepTable    {        /// <summary>        /// Gets the connection string for read.        /// </summary>        /// <returns></returns>        private static string GetReadConnectionString()        {            return ConfigurationManager.AppSettings["MSSQLConnectionString"];        }        /// <summary>        /// Gets the connection string for write.        /// </summary>        /// <returns></returns>        private static string GetWriteConnectionString()        {            if (ConfigurationManager.AppSettings["MSSQLWriteConnectionString"] != null)            {                return ConfigurationManager.AppSettings["MSSQLWriteConnectionString"];            }            return ConfigurationManager.AppSettings["MSSQLConnectionString"];        }        /// <summary>        /// Inserts a row in the DepTable table. Returns new integer id.        /// </summary>        /// <param name="department"> department </param>        /// <returns>int</returns>        public static int Create(            string department)         {            SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "DepTable_Insert", 1);            sph.DefineSqlParameter("@Department", SqlDbType.NVarChar, 200, ParameterDirection.Input, department);            int newID = Convert.ToInt32(sph.ExecuteScalar());            return newID;        }        /// <summary>        /// Updates a row in the DepTable table. Returns true if row updated.        /// </summary>        /// <param name="id"> id </param>        /// <param name="department"> department </param>        /// <returns>bool</returns>        public static bool Update(            int  id,             string department)         {            SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "DepTable_Update", 2);            sph.DefineSqlParameter("@Id", SqlDbType.Int, ParameterDirection.Input, id);            sph.DefineSqlParameter("@Department", SqlDbType.NVarChar, 200, ParameterDirection.Input, department);            int rowsAffected = sph.ExecuteNonQuery();            return (rowsAffected > 0);                    }                /// <summary>        /// Deletes a row from the DepTable table. Returns true if row deleted.        /// </summary>        /// <param name="id"> id </param>        /// <returns>bool</returns>        public static bool Delete(            int id)         {            SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "DepTable_Delete", 1);            sph.DefineSqlParameter("@Id", SqlDbType.Int, ParameterDirection.Input, id);            int rowsAffected = sph.ExecuteNonQuery();            return (rowsAffected > 0);                    }                         /// <summary>        /// Gets an IDataReader with one row from the DepTable table.        /// </summary>        /// <param name="id"> id </param>        public static IDataReader GetOne(            int  id)          {            SqlParameterHelper sph = new SqlParameterHelper(GetReadConnectionString(), "DepTable_SelectOne", 1);            sph.DefineSqlParameter("@Id", SqlDbType.Int, ParameterDirection.Input, id);            return sph.ExecuteReader();                    }                                     /// <summary>        /// Gets a count of rows in the DepTable table.        /// </summary>        public static int GetCount()        {                        return Convert.ToInt32(SqlHelper.ExecuteScalar(                GetReadConnectionString(),                CommandType.StoredProcedure,                "DepTable_GetCount",                null));            }                                     /// <summary>        /// Gets an IDataReader with all rows in the DepTable table.        /// </summary>        public static IDataReader GetAll()        {                        return SqlHelper.ExecuteReader(                GetReadConnectionString(),                CommandType.StoredProcedure,                "DepTable_SelectAll",                null);            }                /// <summary>        /// Gets a page of data from the DepTable table.        /// </summary>        /// <param name="pageNumber">The page number.</param>        /// <param name="pageSize">Size of the page.</param>        /// <param name="totalPages">total pages</param>        public static IDataReader GetPage(            int pageNumber,             int pageSize,            out int itemCount)        {            itemCount = GetCount();                                    SqlParameterHelper sph = new SqlParameterHelper(GetReadConnectionString(), "DepTable_SelectPage", 2);            sph.DefineSqlParameter("@PageNumber", SqlDbType.Int, ParameterDirection.Input, pageNumber);            sph.DefineSqlParameter("@PageSize", SqlDbType.Int, ParameterDirection.Input, pageSize);            return sph.ExecuteReader();                }                      }}
模板生成的数据层代码

 

主要方法如下:

GetPage  获取分页数据
GetAll  获取所有数据
GetCount 获取总数
GetOne 获取某个数据
Delete  删除
Update 更新

第三步:生成网络通讯程序中使用的实体类(使用protobuf.net进行序列化)

 

模板生成的实体类如下:

// Author:                    msdc// Created:                    2015-2-8// Last Modified:            2015-2-8using System;using System.Collections;using System.Collections.Generic;using System.Data;using mojoportal.Data;    namespace mojoportal.Business{     [ProtoContract]    public class DepTable    {#region Constructors        public DepTable()        {}         #endregion#region Private Properties        private int id = -1;        private string department = string.Empty;        #endregion#region Public Properties        [ProtoMember(1)]        public int Id         {            get { return id; }            set { id = value; }        }        [ProtoMember(2)]        public string Department         {            get { return department; }            set { department = value; }        }#endregion     }    }
模板生成的实体类 用protobuf.net序列化

第四步:用模板生成操作类

 


 生成的操作类代码如下:

// Author:                    msdc// Created:                    2015-2-8// Last Modified:            2015-2-8using System;using System.Collections;using System.Collections.Generic;using System.Data;using mojoportal.Data;    namespace mojoportal.Business{        public class DoDepTable    {      #region Private Methods        /// <summary>        /// Gets an instance of DepTable.        /// </summary>        /// <param name="id"> id </param>        private static DepTable GetDepTable(            int id)         {            using(IDataReader reader = DBDepTable.GetOne(                id))             {            return PopulateFromReader(reader);            }                    }                        private static DepTable PopulateFromReader(IDataReader reader)         {            DepTable depTable = new DepTable();            if(reader.Read())            {                depTable.Id = Convert.ToInt32(reader["Id"]);                depTable.Department = reader["Department"].ToString();                        }            return depTable;         }                /// <summary>        /// Persists a new instance of DepTable. Returns true on success.        /// </summary>        /// <returns></returns>        private static bool Create(DepTable depTable)        {             int newID = 0;                        newID = DBDepTable.Create(                depTable.Department);                             depTable.Id = newID;                                return (newID > 0);        }                /// <summary>        /// Updates this instance of DepTable. Returns true on success.        /// </summary>        /// <returns>bool</returns>        private static bool Update(DepTable depTable)        {            return DBDepTable.Update(                depTable.Id,                 depTable.Department);                         }                        #endregion#region Public Methods        /// <summary>        /// Saves this instance of DepTable. Returns true on success.        /// </summary>        /// <returns>bool</returns>        public static bool Save(DepTable depTable)        {            if( depTable.Id > 0)            {                return Update(depTable);            }            else            {                return Create(depTable);            }        }                            #endregion#region Static Methods        /// <summary>        /// Deletes an instance of DepTable. Returns true on success.        /// </summary>        /// <param name="id"> id </param>        /// <returns>bool</returns>        public static bool Delete(            int  id)         {            return DBDepTable.Delete(                id);         }                        /// <summary>        /// Gets a count of DepTable.         /// </summary>        public static int GetCount()        {            return DBDepTable.GetCount();        }            private static IList<DepTable> LoadListFromReader(IDataReader reader)        {            IList<DepTable> depTableList = new List<DepTable>();            try            {                while (reader.Read())                {                    DepTable depTable = new DepTable();                    depTable.Id = Convert.ToInt32(reader["Id"]);                    depTable.Department = reader["Department"].ToString();                    depTableList.Add(depTable);                                    }            }            finally            {                reader.Close();            }                return depTableList;                }                         /// <summary>        /// Gets an IList with all instances of DepTable.        /// </summary>        public static IList<DepTable> GetAll()        {            IDataReader reader = DBDepTable.GetAll();            return LoadListFromReader(reader);            }            /// <summary>        /// Gets an IList with page of instances of DepTable.        /// </summary>        /// <param name="pageNumber">The page number.</param>        /// <param name="pageSize">Size of the page.</param>        /// <param name="totalPages">total pages</param>        public static IList<DepTable> GetPage(int pageNumber, int pageSize, out int itemCount)        {            itemCount = 1;            IDataReader reader = DBDepTable.GetPage(pageNumber, pageSize, out itemCount);                return LoadListFromReader(reader);        }                         #endregion     }    }
模板生成的操作类代码

 

模板生成的是一个基本的操作,如果我们有另外的自定义的需求,那么需要逐层添加代码。

  相关解决方案