首先要感谢bigeagle的帮助,这个也是参考她的bbs做成的
留言板分三个模块:列出留言列表、显示详细内容、发表留言

notepage.cs
 namespace notpage
 {
 using System;
 using System.Data.SQL ;
 using System.Data ;
 using System.Collections ;
 </P><P> 

 //
 // Class Name : 留言板
 //
 // Description: 构造一个留言板对象
 //
 // date: 2000/06/06
 //
 // 作者: 天啦
 /// </P><P>
 /// <summary>
 /// Summary description for notepage.
 /// </summary>  public class notepage
 {
 //私有变量private int n_intID ; //ID编号
 private string n_strTitle ; //主题
 private string n_strAuthor ; //留言人
 private string n_strContent ; //留言内容
 private DateTime n_dateTime ; //留言时间</P><P> 
 //属性
 </P><P> public int ID
 {
 get
 {
 return n_intID ;
 }
 set 
 {
 n_intID = value;
 }
 }</P><P> public string Title 
 {
 get
 {
 return n_strTitle ;
 }
 set
 {
 n_strTitle = value;
 }
 }</P><P> public string Author
 {
 get
 {
 return n_strAuthor ;
 }
 set
 {
 n_strAuthor = value ;
 }
 }
 public string Content
 {
 get
 {
 return n_strContent ;
 }
 set
 {
 n_strContent = value ;
 }
 }
 public DateTime adddate
 {get
 {
 return n_dateTime;
 }
 set
 {
 n_dateTime = value;
 }
 }
 //构造函数
 public notepage()
 {
 //
 // TODO: Add Constructor Logic here
 //
 this.n_intID = 0 ;
 this.n_strTitle = "" ;
 this.n_strAuthor = "" ;
 this.n_strContent = "" ;
 this.n_dateTime = System.DateTime.Now;}</P><P> /// <summary>
 /// 
 /// 取得留言的内容
 /// 
 /// </summary>
 /// <param name="a_intID"> </param>
 public notepage GetTopic(int a_intID)
 {
 //
 // TODO: Add Constructor Logic here
 //
 </P><P>
 //读取数据库
 myconn myConn = new myconn();SQLCommand myCommand = new SQLCommand() ;
 myCommand.ActiveConnection = myConn ;
 myCommand.CommandText = "n_GetTopicInfo" ; //调用存储过程
 myCommand.CommandType = CommandType.StoredProcedure ;
 myCommand.Parameters.Add(new SQLParameter("@a_intTopicID" , )) ;
 myCommand.Parameters["@a_intTopicID"].value = a_intID ;</P><P> notepage objNp = new notepage();
 try
 { myConn.Open() ;
 SQLDataReader myReader ;
 myCommand.Execute(out myReader) ;
 if (myReader.Read())
 {
  = (int)myReader["ID"] ;
 objNp.Title = (string)myReader["Title"] ;
 objNp.Author = (string)myReader["Author"] ;
 objNp.Content = (string)myReader["Content"];
 objNp.adddate = (DateTime)myReader["adddate"];
 }
 </P><P> 
 //清场
 myReader.Close();
 myConn.Close() ;</P><P> }
 catch(Exception e)
 {
 throw(new Exception("取贴子失败:" + e.ToString())) ;
 }
 return objNp;}</P><P> /// <summary>
 /// 
 /// 目的:将留言的内容入库
 /// 
 /// 利用构造函数来传递信息
 /// 
 /// </summary>
 /// <param name="n_Topic"> </param>
 public bool AddTopic(notepage n_Topic)
 {
 //
 // TODO: Add Constructor Logic here
 ////读取数据库
 myconn myConn = new myconn();SQLCommand myCommand = new SQLCommand() ;
 myCommand.ActiveConnection = myConn ;
 myCommand.CommandText = "n_addTopic" ; //调用存储过程
 myCommand.CommandType = CommandType.StoredProcedure ;
 myCommand.Parameters.Add(new SQLParameter("@a_strTitle" , SQLDataType.VarChar,100)) ;
 myCommand.Parameters["@a_strTitle"].value = n_Topic.Title ;</P><P> myCommand.Parameters.Add(new SQLParameter("@a_strAuthor" , SQLDataType.VarChar,50)) ;
 myCommand.Parameters["@a_strAuthor"].value = n_Topic.Author ;</P><P> myCommand.Parameters.Add(new SQLParameter("@a_strContent" , SQLDataType.VarChar,2000)) ;
 myCommand.Parameters["@a_strContent"].value = n_Topic.Content ;</P><P> try
 { myConn.Open() ;
 myCommand.ExecuteNonQuery() ;//清场
myConn.Close() ;</P><P> }
 catch(Exception e)
 {
 throw(new Exception("取贴子失败:" + e.ToString())) ;
 }
 return true;</P><P> }</P><P>
 /// <summary>
 /// 取的贴子列表
 /// </summary>
 /// <remarks>
 /// 返回一个Topic数组
 /// </remarks>
 public ArrayList GetTopicList()
 {
 //定义一个forum数组做为返回值
 ArrayList arrForumList =new ArrayList() ;</P><P> //从数据库中读取留言列表
 myconn myConn = new myconn();
 SQLCommand myCommand = new SQLCommand() ;
 myCommand.ActiveConnection = myConn ;
 myCommand.CommandText = "n_GetTopicList" ; //调用存储过程
 myCommand.CommandType = CommandType.StoredProcedure ;</P><P> try
 {
 myConn.Open() ;
 SQLDataReader myReader ;
 myCommand.Execute(out myReader) ;</P><P> for (int i = 0 ; myReader.Read() ; i++)
 {
 notepage objItem = new notepage() ;
  = myReader["ID"].ToString().ToInt32() ;
 objItem.Title = myReader["Title"].ToString() ;
 objItem.Author = myReader["Author"].ToString() ;
 objItem.adddate = myReader["adddate"].ToString().ToDateTime(); 
 objItem.Content = myReader["Content"].ToString();arrForumList.Add(objItem) ;
 }</P><P> 
 //清场
 myReader.Close();
 myConn.Close() ;</P><P> }
 catch(SQLException e)
 {
 throw(new Exception("数据库出错:" + e.ToString())) ;
 //return null ;
 }</P><P> return arrForumList ;
 }}
 } 
  
 myconn.cs
 namespace notpage
 {
 using System;
 using System.Data.SQL ;</P><P> /// <summary>
 /// Summary description for myconn.
 /// </summary>
 public class myconn:System.Data.SQL.SQLConnection
 {
 private void InitializeComponent ()
 {
 } public myconn()
 {
 //
 // TODO: Add Constructor Logic here
 //
 this.Database = "back" ;
 this.DataSource = "LUOCHANG" ;
 this.UserID = "sa" ;
 this.Password = "" ;
 }
 }
 }
 添加留言addTopic.aspx
 <%@ Page language="c#" Codebehind="AddTopic.cs" AutoEventWireup="false" Inherits="notpage.AddTopic" %>
 <html><head>
 <meta content="Microsoft Visual Studio 7.0" name=GENERATOR>
 <meta content=C# name=CODE_LANGUAGE></head>
 <body>
 <form method=post runat="server">
 <table cellSpacing=1 cellPadding=1 width="88%" border=0>
 <tr>
 <td>留言主题:</TD>
 <td><asp:textbox id=txtTitle runat="server" maxlength="80" columns="65"></asp:textbox></TD></TR>
 <tr>
 <td>姓名:</TD>
 <td><asp:textbox id=txtAuthor runat="server" maxlength="40" columns="20"></asp:textbox></TD></TR>
 <tr>
 <td>留言内容</TD>
 <td><asp:textbox id=txtContent runat="server" maxlength="2000" columns="50" rows="20" TextMode="MultiLine"></asp:textbox><asp:button 
 id=btnSubmit runat="Server" 
 text="确认"></asp:button></TD></TR></TABLE></FORM></body></html>