2) Antwort.aspx: Die Seite mit dem Thema Anzeigen und Antworten
< %@ Page Language = C# enableSessionState = false debug = true %>
< %@ importieren namespace = system %>
< %@ Assembly Name = System.Data %>
< %@ importieren namespace = system.data %>
< %@ importieren namespace = system.data.ado %>
<html> <kopf>
<title> Neues Thema veröffentlichen. </title>
<%-Dies sind die importierten Baugruppen und Namespaces benötigt-%>
<Skript Sprache = C# Runat = Server>
Datensatz DS, RS;
Datarow DR;
String postid;
public void page_load (Objektabsender, EventArgs e)
{
// Überprüfen Sie, ob die Seite zurückgeschützt ist
if (! page.ispostback)
{
// Holen Sie sich die postID aus der Abfragebarstellung
postId = request.params [postId];
if (postid! = null)
{
// Datenbankverbindungszeichenfolge. Ändern Sie den Pfad in die Datenbankdatei, wenn Sie einen anderen Pfad haben, wo
// Sie speichern Ihre Datenbankdatei
String [E -Mail Protected] Provider = microsoft.jet.oledb.4.0; Data Source =+Server.MAppath (.// DB // board.mdb);
// eine Verbindung zur Datenbank herstellen
adoconnection myconn = neue adoconnection (strconn);
// String, um die Datensätze aus der Newpost -Tabelle auszuwählen
String strcon = Betreff, Name, E -Mail, Nachricht, Datum von NewPost Wobei postID =+postID;
// Setzen Sie einen Adodatasetcommand
adodatasetcommand mycommand = neu adodatasetcommand (strcon, myconn);
ds = neuer Datensatz ();
// Vergiss nie, die Verbindung zu öffnen
myconn.open ();
// Füllen Sie den Datensatz
MyCommand.Filldataset (DS, NewPost);
// Holen Sie sich die Zeile an der Position '0' und speichern Sie sie in einem Datarow -Objekt
// Warum in Position '0' eine Reihe? Da es nur einen Rekord mit dem gegebenen postidem erinnern kann !!
// Warum in einen Datarow einfügen? Es ist leicht zugänglich auf Daten aus einem DataRow
dr = ds.tables [newpost] .rows [0];
// Holen Sie sich das Thema aus dem DataRow und richten Sie ihn im Fachfeld des Post -Antwortformulars ein
Betreff.Text = re:+dr [Subjekt] .ToString ();
// Wählen Sie die Antworten auf den Beitrag aus der Antworttabelle aus
Strcon = Name, E -Mail, Betreff, Nachricht, Datum aus der Antwort wobei postID =+postID;
// Erstellen Sie ein neues Adodatasetcommand und einen neuen Datensatz für die Antworttabelle
adodatasetcommand mycommand2 = neuer adodatasetcommand (strcon, myconn);
rs = neuer Datensatz ();
// Füllen Sie den Datensatz
MyCommand2.FillDataset (RS, Antwort);
// Code zum Aktualisieren des Felds Ansichten für die NewPost -Tabelle
// Wählen Sie das Feld der Ansichten aus der Tabelle für einen bestimmten Beitrag aus
strcon = Wählen Sie Ansichten von NewPost aus, wobei postID = +postID;
// Machen Sie hier einen Adocommand, da wir später einen Adodataraderer wollen
adocommand vicomm = neuer Adocommand (strcon, myconn);
Adodatareader -Leser;
// Führen Sie die Anweisung aus und erstellen Sie einen Adodataraderer
vicomm.execute (out reader);
// Lesen Sie den ersten Datensatz (es kann nur einen Datensatz erinnern!)
reader.read ();
// Erhalten Sie einen int32 -Wert aus der ersten Spalte (wir haben eine Spalte im Leser, überprüfen Sie die obige Auswahl an).
int i = reader.getInt32 (0);
// Erhöhen Sie die Ansichten zählen
i ++;
reader.close ();
// Aktualisieren Sie die Newpost -Tabelle mit dem neuen Ansichtenwert
strcon = aktualisiere newpost set views = +i +where (postID = +postID +);
// Da wir das gleiche Adocommand -Objekt für diese Anweisung verwenden, um die Befehls -Eigenschaft festzulegen
vicomm.commandtext = strcon;
// Da diese Anweisung zu keinem Ausgang führt
vicomm.executenonQuery ();
// die Verbindung schließen
myconn.close ();
}
}
}
// Diese Methode wird aufgerufen, wenn die Schaltfläche Senden aufgerufen wird
public void subest_click (Objektabsender, EventArgs E)
{
// Holen Sie sich die postid
postId = request.params [postId];
// Fahren Sie nur fort, wenn alle erforderlichen Felder ausgefüllt sind
if (page.isvalid && name.text!
datetime now = datetime.now;
ermess.text =;
// Wir müssen die Seite postMessage.aspx mit einer Abfrage anrufen, um die Daten in die Datenbank zu veröffentlichen.
// Daher müssen wir zuerst die benutzerdefinierte Abfrage aus den vom Benutzer veröffentlichten Daten erstellen
// Auch da wir eine Abfrage verwenden, müssen wir die Daten in das UTF8 -Format codieren
String req = name =+ system.web.httputility.urlencodetoString (name.text, System.text.encoding.utf8);
req+ = && mail =+ system.web.httputility.urlencodetoString (E -Mail.text, System.text.encoding.utf8);
req+= && subjekt =+system.web.httputility.urlencodetoString (Subjekt.Text, System.text.encoding.utf8);
req+= && ip =+system.web.httputility.urlencodetoString (request.userhostaddress.toString (), System.text.encoding.utf8);
req+ = && date =+ system.web.httputility.urlencodetoString (now.toString (), System.text.encoding.utf8);
req+ = && message =+ system.web.httputility.urlencodetoString (Message.Text, System.text.encoding.utf8);
// nein, um anzuzeigen, dass der Beitrag kein neuer Beitrag ist, aber es ist eine Antwort auf eine frühere Nachricht
req+ = && newPost =+ system.web.httputility.urlencodetoString (no, System.text.encoding.utf8);
req+ = && previd =+ system.web.httputility.urlencodetoString (postID, System.text.encoding.utf8);
// Rufen Sie die Postmessage -Seite mit unserer benutzerdefinierten Abfrage an
page.navigate (postMessage.aspx? + req);
}
anders
{
Errmess.Text = Füllen Sie alle erforderlichen Felder aus! ;
}
}
</script>
<link href = mystyle.css type = text/css rel = stylesheet> </head>
<Body TopMargin = 0 linksmargin = 0 rightmargin = 0 marginwidth = 0 marginHeight = 0>
<%-Fügen Sie eine Header-Datei 'Header.inc'-%> ein
<!-#include file = header.inc->
<br>
<div ausalign = center>
<Tabellengrenze = 0 Breite = 80% Zellspaziergang = 2>
<tr class = fohead> <th Breite = 20%> Autorenname </th>
<th width = 80%> Nachricht </th> </tr>
<%- Unten bin ich in die E-Mail des Autors über den Namen des Autors ein.
Wenn Sie also auf den Autor klicken, wird ihm eine E-Mail gesendet
Außerdem bekomme ich die DateTime aus der Datenbank und zeige das Datum und die Uhrzeit separat an -%>
<tr class = folight> <td rowspan = 2 Align = center> < %= <a href = mailto:+dr [E -Mail]+>+dr [Name]+</a> %> <br>
<font size = 1> <%= DR [Datum] .ToString (). toDatetime (). ToshortDatestring ()%> <br>
< %= DR [Datum] .ToString (). TodaTetime (). ToshortTimestring () %> </font>
</td>
<td> <b> Betreff: </b> < %= dr [Subjekt] %> </td> </tr>
<tr class = folight>
<td> <pre> < %= dr [message] %> </pre> </td>
</tr>
<%-Holen Sie sich alle Antworten auf den ursprünglichen Beitrag und zeigen Sie sie-%>
<% int no = rs.tables [Antwort] .Rows.count;
if (nein> 0)
{
für (int j = 0; j <no; j ++)
{
Datarow rd = rs.tables [Antwort] .Rows [j];
%>
<tr class = fodark>
<td align = center> < %= <a href = mailto:+rd [E -Mail]+>+rd [Name]+</a> %> <br>
<font size = 1> <%= rd [Datum] .ToString (). TodaTetime (). ToshortDateString ()%> <br>
< %= rd [Datum] .ToString (). TodaTeTime (). ToshortTimestring () %> </font>
</td>
<td> <pre> < %= rd [message] %> </pre> </td>
</tr>
<%
}
}
%>
</table>
</div>
<h3 align = center class = fodark> <a href = forum.aspx> Klicken Sie hier </a> Um zum Forum zurückzukehren.
<br> Antwort auf den obigen Beitrag. </h3>
<br>
<ASP: Etikett id = errmess text = style = color:#ff0000 runat = server />
<Formular Runat = Server>
<Table Border = 0Width = 80% Align = Center>
<tr>
<td class = fohead colspan = 2> <b> Antwort auf den Beitrag </b> </td>
</tr>
<tr class = folight>
<td> Name: </td>
<td> <ASP: Textbox text = id = name runat = server/> <font color =#ff0000>*</font> </td>
</tr>
<tr class = folight>
<td> E-Mail: </td>
<td> <ASP: Textbox text = id = E -Mail runat = server/> <font color =#ff0000>*</font> </td>
</tr>
<tr class = folight>
<td> Betreff: </td>
<td> <ASP: Textbox test = id = Subjektbreite = 200 Runat = Server/> <font color =#ff0000>*</font>
</td> </tr>
<tr class = folight>
<td> Nachricht: </td>
<td>
<ASP: textbox id = message runat = server
Spalten = 30 Zeilen = 15 TextMode = Multiline> </Asp: textBox> </td>
</tr>
<tr class = folight>
<td colspan = 2>
<ASP: Button Class = FODARK ID = Schreiben Sie onclick = Subschritt_click Runat = Server text = Subjekt> </ASP: Button> </td> </tr>
</table>
</form> <br>
<br> <!-#include Datei = footer.inc->
</body> </html>