动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   .Net → 阅读文章

 利用c#制作简单的留言板

作者来源: 
阅读 2343 人次 , 2006-2-16 14:45:00 

首先要感谢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" , SQLDataType.Int)) ;
            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())
                {
                    objNp.ID = (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() ;
                    objItem.ID = 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></P><P>对应的cs
namespace notpage
{
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;</P><P>    /// <summary>
    ///    Summary description for AddTopic.
    /// </summary>
    public class AddTopic : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.TextBox txtContent;
        protected System.Web.UI.WebControls.TextBox txtAuthor;
        protected System.Web.UI.WebControls.TextBox txtTitle;
        protected System.Web.UI.WebControls.Button btnSubmit;
   
    public AddTopic()
    {
        Page.Init += new System.EventHandler(Page_Init);
        }</P><P>        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //
                // Evals true first time browser hits the page
                //
            }
        }</P><P>        protected void Page_Init(object sender, EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP+ Windows Form Designer.
            //
            InitializeComponent();
        }</P><P>        /// <summary>
        ///    Required method for Designer support - do not modify
        ///    the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            btnSubmit.Click += new System.EventHandler (this.OnSubmit);
            this.Load += new System.EventHandler (this.Page_Load);
        }
        public void OnSubmit(Object sender , EventArgs e)
        {
            
            
            if (Page.IsValid)
            {
                //数据入库
                try
                {
            
                    notepage objNp = new notepage();
                    objNp.Title = txtTitle.Text;
                    objNp.Author = txtAuthor.Text;
                    objNp.Content = txtContent.Text;
                    objNp.adddate = System.DateTime.Now;
                    notepage objNp1 = new notepage();
                    if(objNp1.AddTopic(objNp))
                    {
                        
                        Response.Write ("<p align=center class=cn>成功留言,点击<a href = list.aspx>此处</a>查看留言列表!。</p>") ;
                    }
                }
                catch(Exception exp)
                {
#if DEBUG
                    Response.Write ("出现异常:" + exp.Message) ;
                    return ;
#endif//DEBUG
               
                }
            }
            
            
        }</P><P>    }
}



显示列表list.aspx
<%@ Page language="c#" Codebehind="list.cs" AutoEventWireup="false" Inherits="notpage.list" %>
<html><head>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#"></head>
  <body>
   
    <form method="post" runat="server"></P><P>     </form><a href = "addTopic.aspx">发表留言</a><br>
    <TABLE WIDTH="90%" HEIGHT="1" BORDER="0" CELLSPACING="2" CELLPADDING="2" id=liuyan>
    <TR>
        <TD>主题</TD>
        <TD>留言人</TD>
        <TD>留言时间</TD>
    </TR>
   
        <asp:label id="n_tdtitle" runat=Server></asp:label>
   
</TABLE></P><P>  </body></html>
namespace notpage
{
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;</P><P>        </P><P>
    /// <summary>
    ///    Summary description for list.
    /// </summary>
    public class list : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Label n_tdtitle;
   
    public list()
    {
        Page.Init += new System.EventHandler(Page_Init);
        }</P><P>        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //
                // Evals true first time browser hits the page
                //
            }
        }</P><P>        protected void Page_Init(object sender, EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP+ Windows Form Designer.
            //
            InitializeComponent();
            Init_tdtitle();
    </P><P>        }
        </P><P>        /// <summary>
        ///    Required method for Designer support - do not modify
        ///    the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.Load += new System.EventHandler (this.Page_Load);
        }
        
        protected void Init_tdtitle()
        {
             InitializeComponent();
            //
            // CODEGEN: This call is required by the ASP+ Windows Form Designer.
            //
            try
            {   
                notepage np = new notepage();</P><P>                ArrayList arrTopic = np.GetTopicList();
            
                for ( int i = 0 ; i < arrTopic.Count  ; i ++)
                {   
                    notepage objTopic = (notepage)arrTopic ;
                    string str ="<tr><td><a href = showTopic.aspx?id="+objTopic.ID.ToString()+">" + objTopic.Title.ToString() + "</a></td>";
                    str = str +"<td>" + objTopic.Author.ToString()+"</td>";
                    str = str +"<td>" + objTopic.adddate.ToString()+"</td></tr>";
                    n_tdtitle.Text = str  + n_tdtitle.Text;
                }
            }
            catch(Exception e)
            {
                throw(new Exception("取得贴子列表出错:" + e.ToString())) ;
            }</P><P>        }
    }
}



查看留言内容showtopic.aspx
<%@ Page language="c#" Codebehind="showTopic.cs" AutoEventWireup="false" Inherits="notpage.showTopic" %>
<html><head>
<meta content="Microsoft Visual Studio 7.0" name=GENERATOR>
<meta content=C# name=CODE_LANGUAGE></head>
<body>
<form method=post runat="server">
<p align=center><font color=red><b>察看留言</b></font></p><br>
<p align=left><font color=blue>留言主题:<asp:label id=n_tdtitle runat="Server" forecolor="Black"></asp:label>
<br>留言时间:<asp:label id=n_tdAdddate runat="Server" forecolor="Black"></asp:label><br></font><font color=blue>留言人:
<asp:label
id=n_tdAuthor runat="server" forecolor="Black"></asp:label><br>留言内容:<asp:label id=n_tdContent
runat="Server" forecolor="Black"></asp:label> </font></p></form>
   
  </body></html>
对应的cs
namespace notpage
{
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;</P><P>    /// <summary>
    ///    Summary description for showTopic.
    /// </summary>
    public class showTopic : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Label n_tdAuthor;
        protected System.Web.UI.WebControls.Label td;
        protected System.Web.UI.WebControls.Label n_tdContent;
        protected System.Web.UI.WebControls.Label n_tdAdddate;
        protected System.Web.UI.WebControls.Label n_tdtitle;
        protected System.Web.UI.WebControls.Label n_ttitle;
   
    public showTopic()
    {
        Page.Init += new System.EventHandler(Page_Init);
        }</P><P>        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //
                // Evals true first time browser hits the page
                //
            }
        }</P><P>        protected void Page_Init(object sender, EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP+ Windows Form Designer.
            //
            int int_ID;
            int_ID = Request.QueryString["ID"].ToInt32();
            notepage np = new notepage();
            notepage objNp = np.GetTopic(int_ID);
            n_tdtitle.Text = objNp.Title.ToString();
            n_tdContent.Text = objNp.Content.ToString();
            n_tdAuthor.Text = objNp.Author.ToString();
            n_tdAdddate.Text = objNp.adddate.ToString();
            InitializeComponent();
        }</P><P>        /// <summary>
        ///    Required method for Designer support - do not modify
        ///    the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.Load += new System.EventHandler (this.Page_Load);
        }
    }
}



  
 本文TagsC#  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:C#正则表达式应用范例
· 下一篇:使用C#开发用户控制
· 全面剖析VB.NET(3)
· 图片上传的WebForm(自动生成所略图)
· .NET语言的选择
· 使用JScript.NET创建asp.net页面(二)
· 部署ASP.NET的三大技术(6)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077