深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

用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