3) postmessage.aspx:- الصفحة التي حفظت البيانات إلى قاعدة البيانات
<٪@ استيراد مساحة الاستيراد = النظام ٪>
<٪@ اسم التجميع = system.data ٪>
<٪@ استيراد المساحة = system.data ٪>
<٪@ استيراد المساحة = system.data.ado ٪>
<٪@ page language = c# debug = true ٪>
<html>
<head>
<title> شكرًا لك على النشر! </title>
<لغة البرنامج النصي = c# runat = server>
// تنفيذ هذا البرنامج النصي عند تحميل الصفحة
void page_load (كائن SRC ، eventArgs e)
{
// إذا تم استدعاء الصفحة من صفحة أخرى
if (! page.ispostback) {
// احصل على جميع المعلمات من سلسلة الاستعلام
اسم السلسلة = request.params [name] ؛
سلسلة البريد الإلكتروني = request.params [البريد الإلكتروني] ؛
موضوع السلسلة = request.params [الموضوع] ؛
سلسلة IP = request.params [IP] ؛
تاريخ السلسلة = request.params [date] ؛
رسالة سلسلة = request.params [message] ؛
Bool Newmess = true ؛
السلسلة previd = 1 ؛
// تحقق مما إذا كان المنشور موضوعًا جديدًا أو ردًا على موضوع جديد
if (request.params [newPost] .equals (no))
{
// إذا كان ردًا ، فاحصل على postid يسمى باسم Previd هنا
newmess = false ؛
previd = request.params [previd] ؛
}
// إذا كان المنشور موضوعًا جديدًا ، فاتبع الروتين أدناه
إذا (Newmess)
{
// سلسلة المسار إلى قاعدة البيانات ، إذا كانت قاعدة البيانات الخاصة بك في بعضها البعض
الدليل ثم قم بتحرير المسار
// من هذا المتغير
سلسلة [البريد الإلكتروني المحمي] Provider = microsoft.jet.oledb.4.0 ؛ مصدر البيانات =
+server.mappath (.// db // board.mdb) ؛
// احصل على اتصال إلى قاعدة البيانات
Adoconnection myconn = adoconnection جديد (strconn) ؛
// عبارة SQL SELECT
String STRcom = حدد postid من NewPost ؛
// إنشاء adocommand لأننا نريد adodatareader لاحقًا
adocommand myCommand = new Adocommand (strom ، myconn) ؛
// افتح الاتصال
myconn.open () ؛
قارئ Adodatareader ؛
// قم بتنفيذ الأمر واحصل على البيانات في القارئ
MyCommand.execute (out reader) ؛
int i = 1 ؛
// احصل على العدد الحالي للسجلات الموجودة في قاعدة البيانات.
بينما (reader.read ())
{
i ++ ؛
}
reader.close () ؛
// قم بإنشاء عبارة SQL لإدراجها في قاعدة البيانات
سلسلة insertstr = insert في قيم newPost (
+i +، '
+اسم+'،'
+البريد الإلكتروني+'،'
+الموضوع+'،'
+IP+'،'
+تاريخ+'،'
+رسالة+'، 0 ، 0) ؛
MyCommand.CommandText = insertStr ؛
// نظرًا لأن عبارة SQL لا تُرجع أي إخراج ، استخدم ExecutEnOnquery () طريقة
MyCommand.ExecutenOnquery () ؛
// أغلق الاتصال
myconn.close () ؛
}
آخر
{
// إذا كانت البيانات المنشورة عبارة عن رد على موضوع ما ، فاتبع الإجراء أدناه
// سلسلة للمسار إلى قاعدة البيانات ، إذا تم تخزين قاعدة البيانات الخاصة بك في دليل آخر بعد ذلك
// قم بتحرير المسار هنا
سلسلة [البريد الإلكتروني المحمي] Provider = microsoft.jet.oledb.4.0 ؛ مصدر البيانات =+
server.mappath (.// db // board.mdb) ؛
Adoconnection myconn = adoconnection جديد (strconn) ؛
// عبارة SQL لتحديد الإجابة
String STROCM = حدد الرد من الرد ؛
// إنشاء adocommand
adocommand myCommand = new Adocommand (strom ، myconn) ؛
// افتح الاتصال
myconn.open () ؛
قارئ Adodatareader ؛
// قم بتنفيذ الأمر واحصل على البيانات في القارئ
MyCommand.execute (out reader) ؛
int i = 1 ؛
// احصل على العدد الحالي للسجلات الموجودة في قاعدة البيانات.
بينما (reader.read ())
{
i ++ ؛
}
reader.close () ؛
// قم بإنشاء عبارة لإدراج القيم في جدول الرد
سلسلة insertstr = insert في قيم الرد (
+i +، '
+اسم+'،'
+البريد الإلكتروني+'،'
+الموضوع+'،'
+IP+'،'
+تاريخ+'،'
+رسالة+'،
+Previd+) ؛
MyCommand.CommandText = insertStr ؛
// executenonquery - لأن الأمر لا يعيد أي شيء
MyCommand.ExecutenOnquery () ؛
// String للحصول على عمود الردود من جدول NewPost
سلسلة replyno = حدد ردود من newPost حيث postid =+previd ؛
MyCommand.CommandText = replyno ؛
// تنفيذ الأمر واحصل على القارئ
MyCommand.execute (out reader) ؛
// اقرأ السجل الأول (تذكر أنه يمكن أن يكون هناك سجل واحد فقط في القارئ لأن Postid فريد من نوعه)
reader.read () ؛
// احصل على قيمة int16 لعدد الردود من عمود الردود في جدول NewPost
int rep = reader.getInt16 (0) ؛
reader.close () ؛
Rep ++ ؛
// عبارة SQL لتحديث حقل الردود في جدول NewPost
سلسلة updortstr = تحديث ردود مجموعة NewPost = +ممثل
+حيث (postid = +previd +) ؛
MyCommand.CommandText = updtsstr ؛
// executeNonquerry لماذا ؟؟ أعتقد أنك يجب أن تعرف الآن!
MyCommand.ExecutenOnquery () ؛
myconn.close () ؛
}
// احصل على المعلمات المختلفة من سلسلة الاستعلام وتخزينها
// إلى الملصقات المعنية
namelabel.text = الاسم ؛
emaillabel.text = البريد الإلكتروني ؛
thisplabel.text = الموضوع ؛
messagelabel.text = رسالة ؛
}
آخر
{
// آخر عرض خطأ
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->
<centre>
<asp: معرف التسمية = errmess text = style = color:#ff0000 runat = server />
<h2 class = fodark> <b> شكرًا لك ، على النشر على لوحة الرسائل. </b> </h2>
<table align = عرض المركز = 60 ٪ الحدود = 0 cellspacing = 2 cellpadding = 1>
<tr class = fohead> <td colspan = 2> المعلومات التي نشرتها! </td> </tr>
<tr class = folight>
<td> الاسم: </td>
<td> <asp: معرف التسمية = namelabel text = runat = server /> </td>
</r>
<tr class = folight>
<td> البريد الإلكتروني: </td>
<td> <asp: معرف التسمية = emaillabel text = runat = server /> </td>
</r>
<tr class = folight>
<td> الموضوع: </td>
<td> <asp: معرف التسمية = tofficelabel text = runat = server /> </td>
</r>
<tr class = folight>
<td> الرسالة: </td>
<td> <asp: label id = messagelabel text = runat = server /> </td>
</r>
</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>