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