程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> 運用C#繪制簡單的留言板(1)

運用C#繪制簡單的留言板(1)

編輯:C#基礎知識

留言板分三個模塊:列出留言列表、顯示詳細內容、發表留言

notepage.cs

namespace  notpage

{

using  System;

using  System.Data.SQL  ;

using  System.Data  ;

using  System.Collections  ;

///  <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  ;  //留言時間

//屬性

public  int  ID

{get

{return  n_intID  ;

}

set  

{n_intID  =  value;

}}

public  string  Title  

{get

{return  n_strTitle  ;

}

set

{n_strTitle  =  value;

}

}

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;

}

///  <summary>

///  

///  取得留言的內容

///  

///  </summary>

///  <param  name="a_intID">  </param>

public  notepage  GetTopic(int  a_intID)

{

//

//  TODO:  Add  Constructor  Logic  here

//

//讀取數據庫

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  ;

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"];

}

//清場

myReader.Close();

myConn.Close()  ;

}catch(Exception  e)

{throw(new  Exception("取貼子失敗:"  +  e.ToString()))  ;

}

return  objNp;

}

///  <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  ;

myCommand.Parameters.Add(new  SQLParameter("@a_strAuthor"  ,  SQLDataType.VarChar,50))  ;

myCommand.Parameters["@a_strAuthor"].Value  =  n_Topic.Author  ;

myCommand.Parameters.Add(new  SQLParameter("@a_strContent"  ,  SQLDataType.VarChar,2000))  ;

myCommand.Parameters["@a_strContent"].Value  =  n_Topic.Content  ;

try

{  

myConn.Open()  ;

myCommand.ExecuteNonQuery()  ;

//清場

myConn.Close()  ;

}

catch(Exception  e)

{throw(new  Exception("取貼子失敗:"  +  e.ToString()))  ;

}

return  true;

}

///  <summary>

///  取的貼子列表

///  </summary>

///  <remarks>

///  返回一個Topic數組

///  </remarks>

public  ArrayList  GetTopicList()

{

//定義一個forum數組做為返回值

ArrayList  arrForumList  =new  ArrayList()  ;

//從數據庫中讀取留言列表

myconn  myConn  =  new  myconn();

SQLCommand  myCommand  =  new  SQLCommand()  ;

myCommand.ActiveConnection  =  myConn  ;

myCommand.CommandText  =  "n_GetTopicList"  ;  //調用存儲過程

myCommand.CommandType  =  CommandType.StoredProcedure  ;

try

{myConn.Open()  ;

SQLDataReader  myReader  ;

myCommand.Execute(out  myReader)  ;

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)  ;

}

//清場

myReader.Close();

myConn.Close()  ;

}

catch(SQLException  e)

{

throw(new  Exception("數據庫出錯:"  +  e.ToString()))  ;

//return  null  ;

}

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[i]  ;

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);

}}}




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved