首页 > 编程 > ASP > 正文

postmessage.aspx 上贴保存

2024-05-04 11:06:25
字体:
来源:转载
供稿:网友
3) postmessage.aspx :- the page which saved data to the database


<%@ 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 [email protected]"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 [email protected]"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>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表