转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
使用 ASP.NET Community Starter Kit建造网站         ★★★★

使用 ASP.NET Community Starter Kit建造网站

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4539 更新时间:2009/4/23 10:44:10
   ),

   CONSTRAINT [FK_Community_Faqs_Community_ContentPages]

   FOREIGN KEY

   (

      [Faq_ContentPageID]

   ) REFERENCES [Community_ContentPages] (

   [contentPage_id]

   ) ON DELETE CASCADE

可以看到表的命名方式和数据类型与CSK中的其它模块都是一致的,这样的编程习惯在国内实在是难以做到。

我们存储FAQ的答案和参考索引的字段是ntext类型,这是为了能支持大数据量的文本(可高达1GB)。还要注意的是Faq_Answer是一个必要字段而Faq_Reference可以是空值。我们的主键(Faq_ContentpageID)关联到Community_Contentpages表中的附加内容。另外一个要注意的细节是外键的约束(级联删除)的使用,保证的数据关联的完整性,并且节省了程序代码。

CSK使用名为Community_ContentpagesDeleteContentPage(太长了吧)的存储过程删除Community_ContentPages表中的记录。当这个存储过程删除记录时,服务器根据外键自动删除FAQ表中的对应记录。

增加存储过程

下面我们要做的是建立增加、编辑、读取单个、读取多个记录的存储过程,在代码中不会出现SQL的代码。从封装性和安全性来看,这样做是一种很好的习惯。

Community_FaqsAddFaq

下面是增加一条新的FAQ记录的存储过程。我们不需要给两个表中的每个字段填充数值。例如,我们不需要填充Contentpage_ViewCount列(默认为0),也不需要在ContentPage_DateCommented中填写日期。

CREATE PROCEDURE Community_FaqsAddFaq
(
   @communityID int,
   @sectionID int,
   @username nvarchar(50),
   @topicID int,
   @question nvarchar(100),
   @introduction nvarchar(500),
   @metaDescription nvarchar(250),
   @metaKeys nvarchar(250),
   @moderationStatus int,
   @answer ntext,
   @reference ntext
)
AS
DECLARE @ContentPageID int
DECLARE @pageType int
SET @pageType = dbo.Community_GetPageTypeFromName(''''Faq'''')
DECLARE @userID int
SET @userID = dbo.Community_GetUserID(@communityID, @username);
BEGIN TRAN
EXEC @ContentPageID = Community_AddContentPage
   @communityID,
   @sectionID,
   @userID,
   @question,
   @introduction,
   @metaDescription,
   @metaKeys,
   @pageType,
   @moderationStatus,
   @topicID
 
INSERT Community_Faqs
(
   Faq_ContentPageID,
   Faq_Answer,
   Faq_Reference
)
 
VALUES
(
   @ContentPageID,
   @answer,
   @reference
)
COMMIT TRAN
RETURN @ContentPageID

注意这里使用了两个CSK提供的UDF(User Defined Function),第一个UDF取回页面类型,CSK中每个模块都有唯一的页面类型。第二个存储过程是根据Community和用户名取回UserId。

由于我们要在两个不同表中插入记录,所以在这里使用了事务来保证操作的原子性。其中往Community_ContentPages表中插入记录是通过调用Communit_AddContentPage这个存储过程来完成的,把FAQ的问题作为@Title参数、介绍作为@Description参数。AddContentPage执行完后返回新增记录的主键值,该数值被用于往Community_Faqs中新增记录。

在CSK中所有新增记录的存储过程必须返回主键值作为结果。

得到新的ContentPageID数值在系统的上层是很有用的,这一点我们将在后面写数据访问组件时看到。

Community_FaqsEditFaq

这个用于修改已有的FAQ记录的存储过程需要的参数比前面少了很多。因为有些字段在我们增加记录之后就不会再被修改,如区域编号等。其代码如下:

CREATE PROCEDURE Community_FaqsEditFaq
(
   @communityID int,
   @contentPageID int,
   @username NVarchar(50),
   @topicID int,
   @question NVarchar(100),
   @introduction NVarchar(500),
   @metaDescription NVarchar(250),
   @metaKeys NVarchar(250),
   @answer Text,
   @reference Text
)
AS
DECLARE @UserID int
SET @UserID = dbo.Community_GetUserID(@communityID, @username)

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  下一页 >> 


[C语言系列]使用C#实现ADSL自动拨号  [Web开发]狂人采集器规则使用详解
[电脑技术]windows7快捷键使用大全  [办公软件]PowerPoint模板使用经验之谈
[办公软件]如何在PowerPoint中使用(插入)Media Player控件播…  [办公软件]如何在PowerPoint中使用(插入、创建)书签及书签的…
[办公软件]如何在PowerPoint中插入(使用)条形码  [办公软件]如何在PowerPoint中制作模板并使用模板
[办公软件]使用PowerPoint制作电子相册教程  [办公软件]可以使用PowerPoint来测试液晶显示器质量
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台