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>