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" %>
//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.
" ;
}
}
Thank You , for posting on the Message Board.
| The information You Posted! | |
| Name : | |
| E-Mail : | |
| Subject : | |
| Message : | |
Click here to go back to the Forum.
<%-- A little work to show the link to return back to the page if, the post was a reply --%>
<% if(Request.Params["previd"]!=null)
{ %>
'> Click here to go back
where you came from.
<% } %>

