الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يتم الإرسال تلقائياً

بدأه -الأمل- في 13 مايو 2011 · 9 رد · 484 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته....أخي تمام أريد منك المساعدة .....

أريد أن ابرمج تذكير.....بحيث يضع العضو إيميله ونص التذكير ثم يضغط موافق...يتخزن التذكير في القاعدة. مع العلم ان الأعضاء

مرتبط بجدول التذكير ون تو مني....

وفي كل يوم المفترض أن يقارن تاريخ اليوم مع التواريخ المخزن بها تذكير في القاعدة.. ثم يجلب رقم الأعضاء الذين لهم تذكيرفي ذلك اليوم ويرسل لهم عبر الإيميل رسالة تذكير..... أريد أن أعرف كيف سيتم الإرسال تلقائياً من قبل النظام؟ قالت لي مشرفتي :

أن أضع الكود في global.asax هل هي طريقة صحيحة....وهذا الكود الذي استخدمته هل هو صحيح؟مع العلم أن basic هو كلاس فيه جمل الإتصال والداتا ست ....الخ ....يتم استدعائه وتعبئته باالجدول الذي أريده... أرجو المساعدة...

void Application_Start(object sender, EventArgs e)

{

basic b = new basic();

string sqlselect = "SELECT Member_Id WHERE Reminder_Date=" + DateTime.Now.Date.Date;

b.FullDataSet("Reminder", sqlselect);

foreach (System.Data.DataRow row in b.DataSet.Tables["Reminder"])

{

send_reminder(int.Parse(row[3].ToString()));

}

}

// Code that runs on application startup

void send_reminder(int member_id)

{

try

{

basic c = new basic();

string qw="SELECT Members.Email, Reminder.Reminder_TextFROM Members INNER JOINReminder ON Members.Member_Id = Reminder.Member_Idwhere Member_Id="+ member_id;

c.FullDataSet("Members Reminder", qw);

foreach (System.Data.DataRow rw in c.DataSet.Tables[0])

{

System.Net.Mail.MailMessage msg = new MailMessage();

msg.To.Add("areejalgomsy@gmail.com");

System.Net.Mail.MailAddress address = new System.Net.Mail.MailAddress(c.DataSet.Tables[0].Columns[0].ToString());

msg.From = address;

msg.IsBodyHtml = true;

msg.Subject = "iProject";

msg.Body =c.DataSet.Tables[0].Columns[1]();

SmtpClient client = new SmtpClient("smtp.gmail.com", 587);

client.EnableSsl = true;

client.UseDefaultCredentials = false;

NetworkCredential card = new NetworkCredential("areejalgomsy", "hv,,,[i123hgrlv");

client.Credentials = card;

client.Send(msg);

}

}

catch

{

}

}

#2

الطريقة صحيحة ولا اتوقع ان فيها مشكلة

ولكن ليس شرطاً ان تستخدمي global.asax

لك الحرية في ذلك

#3

كيف يعني.....يعني ممكن احطوا في صفحة عادية

طيب كيف يفهم إنه الإرسال بشكل تلقائي ؟؟حيقارن التاريخ DateTime.Now.Date.Dat كل يوم ويرسل من تلقاء نفسه؟؟

#4

عند اضافة البريد الالكتروني سوف تضيفين التاريخ الذي يريد الشخص تذكيرة

والنظام تلقائياً سوف يقارن التاريخ الحالي بجميع التواريخ الموجودة في النظام

واذا وجد النظام تاريخ متطابق مع التاريخ الحالي يقوم بعملية الارسال

وعند عملية المقارنه سوف يقوم النظام بالمقارنه بالدقيقة وليس باليوم

وعندها سوف يقوم بعملية الارسال

كمثال توضيحي

وهذا مثال قمت به من قبل في احدى المواقع الحكومية الرياضية

عند تسجيل بطولة سوف اقوم بتخزين اسم البطولة والتاريخ الذي سوف تقام به البطولة

ويوجد صفحة قمت بها بعملية المقارنه

بحيث النظام يتاكد هل الوقت الحالي هو الوقت الذي سوف تقوم فيه البطولة

اذا وجد سوف يقوم باخفاء اسم البطولة لان البطولة قد اقيمت

مع ملاحظة انه يوجد لدي اكثر من بطولة وليست بطولة واحدة

1
#5

وعند عملية المقارنه سوف يقوم النظام بالمقارنه بالدقيقة وليس باليوم

طيب هل يتطلب أن أضيف كود ليقارن بالدقيقة؟؟

أم أنه من تلقاء نفسه يقارن بالدقيقة؟؟ وعلى أي أساس يعتمد يعني حيرسل في أول ساعة من بداية التاريخ الجديد؟؟

أعتذر عن الإزعاج وشكراً جزيلاً

#6

ليس هنالك ازعاج

لا

بالعكس لا تقومي بمقارنه الدقيقة بدقيقة

بل تقومي مقارنه التاريخ الحالي بالتاريخ المسجل

وذلك عن طريقة دالة DateTime.Now

والنظام سوف يقارن تلقائيا من نفسه دون تدخل من احد

وسوف يقوم بالارسال على اساس ان التاريخ مطابق او غير مطابق

#7

يظر خطأ في الكود التالي:

foreach (System.Data.DataRow row in b.DataSet.Tables["Reminder"])

وهذة رسالة الخطأ:

رسالة خطأ المحول البرمجي: CS1579: foreach statement cannot operate on variables of type 'System.Data.DataTable' because 'System.Data.DataTable' does not contain a public definition for 'GetEnumerator'

#8

السلام عليكم ورحمه الله وبركاته

اختي عدلي الجملة الى foreach (DataRow row in b.DataSet.Tables["Reminder"].Rows)

.:: Wish to become better and better ::.

#9

شكراً لكم

أخي vb عدلت الكود يظهر نفس الخطأ

رسالة خطأ المحول البرمجي: CS1579: foreach statement cannot operate on variables of type 'System.Data.DataTable' because 'System.Data.DataTable' does not contain a public definition for 'GetEnumerator'...مع العلم إني كتبت الكود في صفحة global.asax

تم تعديل هذه المشاركة بواسطة -الأمل- في 21 مايو 2011 في 13:27

#10

السلام عليكم ورحمه الله وبركاته

اختي لا تنسي Rows لأن ال Table لا يحتوي الاجراء GetEnumerator

.:: Wish to become better and better ::.

مواضيع مشابهة