
 
 | 
| 技术资料  > .Net专区 > Asp.Net开发 : 用asp.net写的论坛程序--上贴保存 |  
用asp.net写的论坛程序--上贴保存 March 25,2004 |  
3) postmessage.aspx :- The page which saved data to the Database</P><P> 
<%@ Import Namespace="System" %> 
<%@ Assembly Name="System.Data" %> 
<%@ Import Namespace="System.Data" %> 
<%@ Import Namespace="System.Data.ADO" %> 
<%@ Page Language="C#" Debug="true" %> 
<html> 
<head> 
<title>Thank You for Posting !</title> 
<script language="C#" runat="server" > 
  //execute this script when the page loads  
  void Page_Load(Object Src, EventArgs E)  
  { 
     //if the page is called from another page  
     if (!Page.IsPostBack) { 
       //Get all the Parameters from the Query string  
       string name = Request.Params["name"] ; 
       string email = Request.Params["email"] ; 
       string subject = Request.Params["subject"] ; 
       string ip = Request.Params["ip"] ; 
       string date = Request.Params["date" ]; 
       string message = Request.Params["message"] ; 
       bool newmess =true ; 
       string previd ="1";  
       //Check if the post is a New topic or a reply to a new topic  
       if(Request.Params["newpost"].Equals("no")) 
       { 
          //if its a reply then get the postid called as previd here  
          newmess =false ; 
          previd = Request.Params["previd"] ;  
       } 
       //If the post is a new topic then follow the below routine  
       if(newmess) 
       { 
          //The string for the path to the database , if your database is in some other  
directory then edit the path 
          //of this variable   
          string strConn=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source= 
"+Server.MapPath(".\db\board.mdb") ; 
          //Get a ADOConnection to the database  
          ADOConnection myConn = new ADOConnection(strConn) ; 
          //The SQL Select statement  
          string strCom = "Select postid from newpost" ; 
          //Create a ADOCommand since we want a ADODataReader later  
          ADOCommand myCommand =new ADOCommand(strCom,myConn); 
          //Open the connection  
          myConn.Open(); 
          ADODataReader reader; 
          //Execute the command and get the Data into "reader"  
          myCommand.Execute(out reader) ; 
          int i=1 ; 
          //Get the current number of records present in the database.  
          while(reader.Read()) 
          { 
              i++ ; 
          } 
          reader.Close() ; 
         //build the SQL statement to insert into the Database  
          string insertStr =" INSERT INTO newpost VALUES (" 
+i +", '" 
+name+"', '" 
+email+"', '" 
                +subject+"', '" 
+ip+"', '" 
+date+"', '" 
+message+"',0, 0)" ; 
          myCommand.CommandText =insertStr ; 
          //Since the SQL statement does not return any output use "ExecuteNonQuery() method  
          myCommand.ExecuteNonQuery() ; 
         //Close the connection  
          myConn.Close() ; 
        } 
        else 
        { 
           //If the posted data is a reply to a topic then follow the below procedure 
           //string for the path to the database, if your database is stored in some other directory then  
           //edit the path here    
           string strConn=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source="+ 
Server.MapPath(".\db\board.mdb") ; 
           ADOConnection myConn = new ADOConnection(strConn) ; 
           //SQL statement to select the replyid  
           string strCom = "Select replyid from reply" ; 
           //create a ADOCommand  
           ADOCommand myCommand =new ADOCommand(strCom,myConn); 
           //Open the Connection  
           myConn.Open(); 
           ADODataReader reader; 
           //Execute the command and get the Data into "reader"  
          myCommand.Execute(out reader) ; 
          int i=1 ; 
          //Get the current number of records present in the database.  
          while(reader.Read()) 
          { 
              i++ ; 
          } 
          reader.Close() ; 
          //Build a statement to insert the values into the reply table  
          string insertStr =" INSERT INTO reply VALUES (" 
+i +", '" 
+name+"', '" 
+email+"', '" 
+subject+"', '" 
+ip+"', '" 
+date+"', '" 
+message+"', "  
+previd+")"; 
          myCommand.CommandText =insertStr ; 
          //ExecuteNonQuery - since the command does not return anything  
          myCommand.ExecuteNonQuery() ; 
         //string to get the replies column from the newpost table  
          string replyno = "SELECT replies FROM newpost WHERE postid ="+previd ; 
          myCommand.CommandText =replyno ; 
          //Execute command and get the reader  
          myCommand.Execute(out reader) ; 
          //read the first record (remember there can only be one record in the reader since postid is unique)  
          reader.Read(); 
          //Get the "Int16" value of the number of replies from the replies column in the newpost table  
          int rep =reader.GetInt16(0) ; 
          reader.Close() ; 
          rep++ ; 
          //SQL statement to update the replies field in the newpost table  
          string updtStr ="UPDATE newpost SET replies = "+rep 
+" WHERE (postid = "+previd+")" ;  
          myCommand.CommandText = updtStr; 
         //ExecuteNonQuerry why ?? I guess U should know by now !  
          myCommand.ExecuteNonQuery(); 
          myConn.Close() ; 
       } 
       //get the different Parameters from the query string and store it  
       //to respective Labels  
       NameLabel.Text = name; 
       EmailLabel.Text= email ; 
       SubjectLabel.Text=subject;      
       MessageLabel.Text=message ;     
    } 
   else 
    { 
       //else display an error  
       errmess.Text="This Page Cannot be called directly. It has to be called from the Form posting page.<br>" ; 
     } 
  } 
</script> 
<LINK href="mystyle.css" type=text/css rel=stylesheet> 
</head> 
<body topmargin="0" leftmargin="0" rightmargin="0" marginwidth="0" marginheight="0"> 
<!-- #Include File="header.inc" -->  
<center> 
<asp:label id="errmess" text="" style="color:#FF0000" runat="server" /> 
<h2 class="fodark"><b>Thank You , for posting on the Message Board.</b></h2> 
<table align=center width="60%" border="0" cellspacing="2" cellpadding="1" > 
<tr class="fohead"><td colspan="2">The information You Posted!</td></tr> 
<tr class="folight"> 
<td>Name :</td>  
<td><asp:label id="NameLabel" text="" runat="server" /></td> 
</tr> 
<tr class="folight"> 
<td>E-Mail :</td>  
<td><asp:label id="EmailLabel" text="" runat="server" /></td> 
</tr> 
<tr class="folight"> 
<td>Subject :</td> 
<td><asp:label id="SubjectLabel" text="" runat="server" /></td> 
</tr> 
<tr class="folight"> 
<td>Message :</td> 
<td><asp:label id="MessageLabel" text="" runat="server" /></td> 
</tr> 
</table> 
<br> 
<h4 class="fodark"><a href="forum.aspx">Click here </a> to go back to the Forum.<br> 
<%-- A little work to show the link to return back to the page if, the post was a reply --%>  
<% if(Request.Params["previd"]!=null) 
     { %> 
      <a href='reply.aspx?postid=<%=Request.Params["previd"] %>'> Click here </a>to go back  
where you came from. 
<% } %> 
</h4> 
</center> 
<!-- #Include File="footer.inc" -->  
</body> 
</html>  
         
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved