用Asp.net +C#+ Sql Server200 写的简单留言本

一直以来,觉得留言本是很简单的,昨天开始做第一个留言本,还真有些细节需要特别注意。
现在简单的功能已经基本实现。 
任何人可以留言(好象是废话,要不怎么叫留言本?呵呵)
管理员可以删除留言、回复留言。
总的感觉来说,很大的问题还是存于数据库方面。
用到的表:1  gbook  用来存放留言人、标题、留言内容等
这个是主要用到的表,为了使管理员删除记录后,再留言留言时id重新更新,也就是依次前提。加了一个函数(功能获得最大id):
create   function  f_getid()
returns   int
as
begin
declare  @id  int
select  @id = max (id)  from  gbook
set  @id = isnull (@id, 0 ) + 1
return (@id)
end

建立表,此表的id不使用identity
CREATE   TABLE   [ dbo ] . [ gbook ]  (
    
[ id ]    int   default  dbo.f_getid()  primary   key  ,
    
[ uname ]   [ varchar ]  ( 20 ),
    
[ utitle ]   [ varchar ]  ( 50 ) ,
    
[ ubody ]   [ text ]
    
[ udate ]   [ datetime ]  

GO  
 
还要建立一个触发器,目的就是,当删除记录再增加留言时,id重新更新:
create   trigger  t_delete  on  gbook
AFTER 
delete
as
declare  @id  int ,@mid  int
select  @mid = min (id),@id = @mid - 1   from  deleted
update  gbook  set  id = @id,@id = @id + 1   where  id > @mid
go

2  guest表, 用来存放管理员的信息
这个表没什么特殊的,只是存放管理员的信息
3 answer 表,存放的是"回复"的内容
这个表的建立要注意:因为删除gbook表的记录时需要把次表中相同的记录删除,并也要更新!
  CREATE   TABLE   [ answer ]  ( 
 
[ id ]   [ int ]   references   [ dbo ] . [ gbook ] ( [ id ] on   update   cascade   on   delete   cascade  , 
 
[ answer_body ]   [ text ]   , 
 
[ answer_date ]   [ datetime ]    ) 

--- 前台asp.net+c# 开发:
主要是三个aspx页面,代码不写了,简单说下关系:
1 submit.aspx 这个是用户写留言的地方,提交后会存放至gbook表中。
2 show.aspx  这个是查看留言的页面,用到了DataGrid,模板列等。
3 answer.aspx,这个是管理员用来回复留言的,通过的是gbook表中的id.
主要页面截图:
 传上后那么小,看都看不清楚,放到象册里

你可能感兴趣的:(SQL Server)