2) Balas.aspx: Halaman Melihat dan Balas Topik
< %@ halaman bahasa = C# mengaktifkan ressiesstate = false debug = true %>
< %@ impor namespace = System %>
< %@ name perakitan = System.data %>
< %@ impor namespace = system.data %>
< %@ import namespace = system.data.ado %>
<html> <head>
<title> Posting topik baru. </title>
<%-Ini adalah rakitan impor dan ruang nama yang dibutuhkan-%>
<bahasa skrip = c# runat = server>
Dataset DS, RS;
Datarow DR;
string postid;
public void page_load (pengirim objek, EventArgs e)
{
// Periksa apakah halamannya kembali
if (! page.ispostback)
{
// Dapatkan postid dari string kueri
postid = request.params [postid];
if (postid! = null)
{
// String koneksi basis data. Ubah jalur ke file database jika Anda memiliki beberapa jalur lain di mana
// Anda menyimpan file database Anda
string [email dilindungi] provider = microsoft.jet.oledb.4.0; data sumber =+server.mappath (.// db // board.mdb);
// Buat koneksi ke database
adoconnection myconn = adoconnection baru (strconn);
// string untuk memilih catatan dari tabel newpost
string strcon = pilih subjek, nama, email, pesan, date dari newpost di mana postid =+postid;
// atur AdodatasetCommand
AdodatasetCommand MyCommand = AdodatasetCommand baru (strcon, MyConn);
ds = dataset baru ();
// Jangan lupa untuk membuka koneksi
myconn.open ();
// Isi dataset
MyCommand.FillDataset (DS, NewPost);
// Dapatkan baris di posisi '0' dan menyimpannya di objek Dataarow
// Mengapa mendayung di posisi '0'? Karena hanya ada satu catatan dengan postid yang diberikan ingat !!
// Mengapa dimasukkan ke dalam datarow? Mudah mengakses data dari datarow
dr = ds.tables [newPost] .rows [0];
// Dapatkan subjek dari datarow dan atur di bidang subjek Formulir Balas posting
subjek.text = re:+dr [subjek] .toString ();
// Pilih balasan ke pos dari tabel balasan
strcon = pilih nama, email, subjek, pesan, tanggal dari balasan di mana postid =+postid;
// Buat AdodatasetCommand dan Dataset baru untuk tabel Balas
AdodatasetCommand myCommand2 = adodatasetCommand baru (strcon, myconn);
rs = dataset baru ();
// Isi dataset
MyCommand2.fillDataset (RS, Balas);
// kode untuk memperbarui bidang tampilan untuk tabel NewPost
// Pilih bidang tampilan dari tabel untuk postid yang diberikan
strcon = pilih tampilan dari newPost di mana postid = +postid;
// Buatlah ADocommand di sini karena kami ingin adodatareader nanti
Adocommand vicomm = Adocommand baru (strcon, MyConn);
Pembaca Adodatareader;
// Jalankan pernyataan dan buat AdodataReader
vicomm.execute (pembaca keluar);
// Baca rekaman pertama (hanya ada satu catatan ingat!)
reader.read ();
// Dapatkan nilai int32 dari kolom pertama (kami memiliki satu kolom di pembaca, periksa pernyataan pilih di atas)
int i = reader.getInt32 (0);
// tingkatkan jumlah tampilan
i ++;
reader.close ();
// Perbarui tabel newPost dengan nilai tampilan baru
strcon = perbarui tayangan setel newPost = +i +di mana (postid = +postid +);
// Karena kami menggunakan objek Adocommand yang sama untuk pernyataan ini juga untuk mengatur properti CommandText
vicomm.commandtext = strcon;
// Karena pernyataan ini tidak akan menghasilkan output kami menggunakan metode executeNonQuery ()
vicomm.executenonQuery ();
// tutup koneksi
myconn.close ();
}
}
}
// metode ini dipanggil saat tombol kirim diklik
public void submit_click (pengirim objek, EventArgs e)
{
// Dapatkan postid
postid = request.params [postid];
// Lanjutkan hanya jika semua bidang yang diperlukan diisi
if (page.isvalid && name.text! = && subjek.text! = && email.text! =) {
datetime sekarang = datetime.now;
errmess.text =;
// kita harus menghubungi halaman postmessage.aspx dengan kueri untuk memposting data ke database.
// Karenanya kita harus terlebih dahulu membangun kueri khusus dari data yang diposting oleh pengguna
// Juga karena kami menggunakan kueri, kami harus menyandikan data ke dalam format UTF8
String req = name =+ System.web.httputility.urlencodetoString (name.text, System.text.encoding.utf8);
req+ = && email =+ system.web.httputility.urlencodetoString (email.text, systex.text.encoding.utf8);
req+= && subjek =+System.web.httputility.urlencodetoString (subjek.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, systex.text.encoding.utf8);
// encode no untuk menunjukkan bahwa posting itu bukan posting baru tetapi ini adalah balasan untuk pesan sebelumnya
req+ = && newPost =+ system.web.httputility.urlencodetoString (no, systic.text.encoding.utf8);
req+ = &ac previd =+ system.web.httputility.urlencodetoString (postid, systent.text.encoding.utf8);
// hubungi halaman postmessage dengan kueri khusus kami
page.navigate (postmessage.aspx? + req);
}
kalau tidak
{
errmess.text = Isi semua bidang yang diperlukan! ;
}
}
</script>
<tautan href = mystyle.css type = text/css rel = stylesheet> </head>
<body topmargin = 0 leftmargin = 0 rightmargin = 0 marginwidth = 0 marginheight = 0>
<%-Sertakan file header 'header.inc'-%>
<!-#include file = header.inc->
<br>
<Div Align = Center>
<Border Tabel = 0 Lebar = 80% CellSpacing = 2>
<tr class = fohead> <width = 20%> nama penulis </t>
<TH Width = 80%> Pesan </th> </tr>
<%- di bawah ini saya merangkum email penulis atas nama penulis
Sehingga saat Anda mengklik penulis, email dikirimkan kepadanya
Saya juga mendapatkan datetime dari database dan menampilkan tanggal dan waktu secara terpisah -%>
<tr class = folight> <td rowspan = 2 align = center> < %= <a href = mailto:+dr [email]+>+dr [name]+</a> %> <br>
<ukuran font = 1> <%= dr [tanggal] .toString (). TodateTime (). ToshortDateString ()%> <br>
< %= dr [tanggal] .toString (). TodateTime (). ToshortTimestring () %> </font>
</td>
<td> <b> Subjek: </b> < %= dr [subjek] %> </td> </tr>
<tr class = folight>
<td> <pe> < %= dr [pesan] %> </pre> </td>
</tr>
<%-Dapatkan semua balasan ke posting asli dan tunjukkan-%>
<% int no = rs.tables [balasan] .rows.count;
if (no> 0)
{
untuk (int j = 0; j <no; j ++)
{
datarow rd = rs.tables [balasan] .rows [j];
%>
<tr class = fodark>
<td align = center> < %= <a href = mailto:+rd [email]+>+rd [name]+</a> %> <br>
<font size = 1> <%= rd [tanggal] .toString (). TodateTime (). ToshortDateString ()%> <br>
< %= rd [tanggal] .toString (). TodateTime (). ToshortTimestring () %> </font>
</td>
<td> <pe> < %= rd [pesan] %> </pri> </td>
</tr>
<%
}
}
%>
</boable>
</div>
<h3 align = centre class = fodark> <a href = forum.aspx> klik di sini </a> untuk kembali ke forum.
<br> Balas posting di atas. </h3>
<br>
<asp: label id = errmess text = style = color:#ff0000 runat = server />
<form runat = server>
<Border Table = 0width = 80% Align = Center>
<tr>
<td class = fohead colspan = 2> <b> Balas ke posting </b> </td>
</tr>
<tr class = folight>
<td> Nama: </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 = email runat = server/> <font color =#ff0000>*</font> </td>
</tr>
<tr class = folight>
<td> Subjek: </td>
<td> <asp: TextBox test = id = Lebar subjek = 200 runat = server/> <font color =#ff0000>*</font>
</td> </tr>
<tr class = folight>
<td> pesan: </td>
<td>
<ASP: TextBox ID = pesan runat = server
kolom = 30 baris = 15 textMode = multiline> </asp: textbox> </td>
</tr>
<tr class = folight>
<td colspan = 2>
<Asp: Tombol kelas = fodark id = tulis OnClick = submit_click runat = server text = Submit> </sp: button> </td> </tr>
</boable>
</form> <br>
<br> <!-#include file = footer.inc->
</body> </html>