3)postmessage.aspx: - データベースにデータを保存したページ
<%@ namespace = system%>をインポートします
<%@アセンブリname = System.Data%>
<%@ Import NameSpace = System.Data%>
<%@ namespace = system.data.ado%>をインポートします
<%@ページ言語= c#debug = true%>
<html>
<head>
<Title>投稿していただきありがとうございます!</title>
<スクリプト言語= c#runat = server>
//ページが読み込まれるときにこのスクリプトを実行します
void page_load(オブジェクトsrc、eventargs e)
{
//ページが別のページから呼び出されている場合
if(!page.ispostback){
//クエリ文字列からすべてのパラメーターを取得します
文字列名= request.params [name];
文字列email = request.params [email];
string subject = request.params [subject];
文字列ip = request.params [ip];
文字列date = request.params [date];
文字列メッセージ= request.params [メッセージ];
bool newmess = true;
文字列previd = 1;
//投稿が新しいトピックであるか、新しいトピックへの返信があるかを確認します
if(request.params [newPost] .equals(no))
{
//返信の場合は、ここでprevidと呼ばれるpostidを取得します
newmess = false;
previd = request.params [precid];
}
//投稿が新しいトピックの場合は、以下のルーチンに従ってください
if(newmess)
{
//データベースが他のデータベースにある場合、データベースへのパスの文字列
ディレクトリはパスを編集します
//この変数の
string [電子メール保護]プロバイダー= microsoft.jet.oledb.4.0; data source =
+server.mappath(.// db // board.mdb);
//データベースへのAdoConnectionを取得します
Adoconnection myConn = new Adoconnection(strconn);
// SQL Selectステートメント
string strcom = newpostからpostidを選択します。
//後でAdodatareaderが必要なので、Adocommandを作成します
Adocommand mycommand = new Adocommand(Strcom、MyConn);
//接続を開きます
myconn.open();
Adodatareader Reader;
//コマンドを実行し、データをリーダーに取得します
mycommand.execute(out reader);
int i = 1;
//データベースに存在する現在のレコード数を取得します。
while(reader.read())
{
i ++;
}
reader.close();
// SQLステートメントを作成して、データベースに挿入します
string insertStr = newPost値に挿入(
+i +、 '
+name+'、'
+メール+'、'
+件名+'、'
+ip+'、'
+date+'、'
+メッセージ+'、0、0);
mycommand.commandtext = insertStr;
// SQLステートメントは出力を返さないため、exectEnonquery()メソッドを使用します
mycommand.executenonquery();
//接続を閉じます
myconn.close();
}
それ以外
{
//投稿されたデータがトピックへの返信である場合は、以下の手順に従ってください
//データベースへのパスの文字列データベースが他のディレクトリに保存されている場合、
//ここでパスを編集します
string [電子メール保護]プロバイダー= microsoft.jet.oledb.4.0; data source =+
server.mappath(.// db // board.mdb);
Adoconnection myConn = new Adoconnection(strconn);
// ReplyIDを選択するSQLステートメント
string strcom = ReplyからReplyIDを選択します。
// Adocommandを作成します
Adocommand mycommand = new Adocommand(Strcom、MyConn);
//接続を開きます
myconn.open();
Adodatareader Reader;
//コマンドを実行し、データをリーダーに取得します
mycommand.execute(out reader);
int i = 1;
//データベースに存在する現在のレコード数を取得します。
while(reader.read())
{
i ++;
}
reader.close();
//声明を作成して値を返信テーブルに挿入します
string insertStr =返信値に挿入します(
+i +、 '
+name+'、'
+メール+'、'
+件名+'、'
+ip+'、'
+date+'、'
+メッセージ+'、
+precid+);
mycommand.commandtext = insertStr;
// executenonquery-コマンドは何も返さないので
mycommand.executenonquery();
// newPostテーブルから返信列を取得する文字列
文字列Replyno = postid =+previdでnewpostから返信を選択します。
mycommand.commandtext = ReplyNo;
//コマンドを実行して読者を取得します
mycommand.execute(out reader);
//最初のレコードを読む(PostIDは一意であるため、読者に1つのレコードしかないことを忘れないでください)
reader.read();
// NewPostテーブルのReplies列から応答数のINT16値を取得します
int rep = reader.getint16(0);
reader.close();
rep ++;
// newPostテーブルの返信フィールドを更新するSQLステートメント
string updtstr = update newPost Set Replies = +rep
+where(postid = +previd +);
mycommand.commandtext = updtstr;
// executenonquerryの理由私はあなたが今までに知っておくべきだと思います!
mycommand.executenonquery();
myconn.close();
}
//クエリ文字列から異なるパラメーターを取得して保存します
//それぞれのラベルに
namelabel.text = name;
emaillabel.text = email;
subjectlabel.text = subject;
messagelabel.text = message;
}
それ以外
{
//エラーを表示します
errmess.text =このページは直接呼び出すことはできません。フォームの投稿ページから呼び出される必要があります。<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:ラベルID = errmess Text = style = color:#ff0000 runat = server />
<H2 class = fodark> <b>メッセージボードに投稿してくれてありがとう。</b> </h2>
<table align = center width = 60%border = 0 cellspacing = 2 cellpadding = 1>
<tr class = fohead> <td colspan = 2>投稿した情報!</td> </tr>
<tr class = folight>
<td>名前:</td>
<TD> <ASP:ラベルID = namelabel Text = runat = server /> < /td>
</tr>
<tr class = folight>
<td> e-mail:</td>
<td> <asp:ラベルID = emaillabel text = runat = server /> < /td>
</tr>
<tr class = folight>
<td>件名:</td>
<td> <asp:label id = subjectlabel text = runat = server /> < /td>
</tr>
<tr class = folight>
<td>メッセージ:</td>
<TD> <ASP:ラベルID = Messagelabel Text = runat = server /> < /td>
</tr>
</table>
<br>
<h4 class = fodark> <a href = forum.aspx>ここをクリック</a>フォーラムに戻る。<br>
<% - 投稿が返信だった場合、ページに戻るリンクを表示するための少しの作業
<%if(request.params [previd]!= null)
{%>
<a href = 'Reply.aspx?postid = <%= request.params [previd]%>'>ここをクリック</a>
あなたがどこから来たのか。
<%}%>
</h4>
</center>
<! - #include file = footer.inc->
</body>
</html>