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

إرسال إلى مجموعة

بدأه -الأمل- في 12 يونيو 2011 · 29 رد · 1,026 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أريد إنشاء كود يرسل لمجموعة أعضاء بحيث يحصل على إيميل كل عضو في المجموعة ويرسل له رسالة ...أريد تصحيح للكود

 foreach (DataRow[] gr in dsTasks.Tables["Groups"].Rows)
        {//شرط رقم المجموعة
            if (gr[0] != null)
            {
                string gr_id = gr[0].ToString();
                string emailgroup = gr[1].ToString() + ";";



            }
        }

        (string[] emailgr = regex.splt(emailgroup);>>>> المشكلة هنا لايتعرف متغيرemailgroup كيف أقدر أخليه يتعرف عليها..... ودالة regex  لاتتعرف ماالمشكلة فيها


                    foreach(string ema in emailgr)
#2

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

اختي يمكنك عمل التالي


List<string> emails = new List<string>();
foreach(DataRow row in ds.Tables[0].Rows)
{
emails.Add(row["email"].ToString();
}

على افتراض ان الجدول الاول هو جدول الاعضاء حسب رقم مجموعه معينه, فقد قمنا بخزن البريدات الالكترونيه في List والان في الرساله جربي التالي

msg.To=String.Join(";",emails);

فقد قمنا بربط البريدات بالفاصله المنقوطه واعتبرناها المرسل لهم .. بالتوفيق ..

1

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

#3

أخي الكريم لايتعرف على list ...يوجد listbox ,list item.....لكن لايوجد list

عملت كدا

  list <string> emails = new List <string>();
        foreach (DataRow gr in dsTasks.Tables["Groups"].Rows)
        {
            //شرط رقم المجموعة إن المهمة مسندة لمجموعة
            if (gr[0] != null)
            {//رقم المجموعة
                string gr_id = gr[0].ToString();
                //string emailgroup = gr["Email"].ToString() + ";";
                emails.Add(gr["Email"].ToString());
                string send_gr=string.Join(";",emails);
                 link = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/") + "Activecomplete.aspx?c=" + txtCode.Text.Trim() + "&id=" + gr[0] ;
                emailtext = "<p>" + " اضغط على الرابط إذا انجزت المهمة " + "</p>" + "<p>" + "<a href=" + link + ">" + link + "</a>" + "</p>" + "<p>" + "اذا لم يعمل الرابط قم بنسخه وضعه في متصفحك ليتم تفعيل إنجاز المهمة  " + "</p>";
                MailMessage msg = new MailMessage("a7lyareej@gmail.com",send_gr, "iProject" + " , " + "هل انتهيت من إنجاز المهمة؟", emailtext);
                NetworkCredential mailAuth = new NetworkCredential("a7lyareej@gmail.com", "112233332211");
                SmtpClient mailClieant = new SmtpClient("smtp.gmail.com", 587);
                mailClieant.EnableSsl = true;
                mailClieant.UseDefaultCredentials = false;
                mailClieant.Credentials = mailAuth;
                mailClieant.Send(msg);



            }

وايضاً أريد أن تظهر اسم المهمة المسندة للجروب كيف أقدر أحصل عليها مع العلم أن dataset فيها جدول المهام والجروبات ...والجدولين مرتبطين one-to-many

وشكراً

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

#4

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

اختي بالنسبة للفئة List قومي باستخدام

using System.Collections.Generics;

امابالنسبه لإسم المهمة انصح بعمل استعلام يجلب المعلومات اللازمه بدون ان تقومي بكود لاداعي له

1

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

#5

بس أنا مخزنة جدول المهام وجدول المجموعات في dataset كيف أسوي استعلام منها؟؟

#6

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

اختي كان قصدي استعلام من قاعدة البيانات مو مشكله ممكن تكتبي لي اسامي الجدولين مع الحقول لكل واحد منهم, وكذلك ويبن تريدي ظهور اسم المهمه؟!!

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

#7

ايوا دحين المهمة ممكن يكون مكلف بها عضو أو جروب في dataset في ثلاثة جداول وريني كيف أسوي الإستعلام على الجروب إنه تظهر مهامه؟؟؟ وأنا بطبقه على الأعضاء

     SqlConnection SqlConnection = new SqlConnection();
        SqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;


        DataSet dsTasks = new DataSet();
        string sqlselect = "(SELECT Member_Id,Member_Name,Email from Members;SELECT Group_Id,Group_Name from Groups;SELECT Task_Id, Task_Name from Tasks) where Tasks.End_Task=" + DateTime.Now.Date.Date;
        SqlDataAdapter adapter = new SqlDataAdapter(sqlselect, SqlConnection);

        adapter.Fill(dsTasks);
        dsTasks.Relations.Add(new DataRelation("membertask", dsTasks.Tables[0].Columns["Member_Id"], dsTasks.Tables[2].Columns["Member_Id"]));
        dsTasks.Relations.Add(new DataRelation("grouptask", dsTasks.Tables[1].Columns["Group_Id"], dsTasks.Tables[2].Columns["Group_Id"]));
        Repeater1.DataSource = dsTasks;
        Repeater1.DataBind();

تم تعديل هذه المشاركة بواسطة -الأمل- في 12 يونيو 2011 في 22:49

#8

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

اختي ممكن ترفقي قاعدة البيانات, او تكتبي المطلوب الي طلبته في اخر رد لي؟!!

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

#9

دحين جربت دا الإستعلام عشان أسوي منه dataset

       DataSet dsTasks = new DataSet();
        string sqlselect = (@"SELECT Tasks.Task_Id, Tasks.Task_Name, Groups.Group_Id, Groups.Group_Name, Members.Member_Id, Members.Member_Name, Members.Email
FROM Groups INNER JOIN
                         Members_Groups ON Groups.Group_Id = Members_Groups.Group_Id INNER JOIN
                         Tasks ON Groups.Group_Id = Tasks.Group_Id INNER JOIN
                         Members ON Members_Groups.Member_Id = Members.Member_Id where Tasks.End_Task=") + DateTime.Now.Date.Date.ToString();
        SqlDataAdapter adapter = new SqlDataAdapter(sqlselect, SqlConnection);

        adapter.Fill(dsTasks);

ولما جربته بكويري في القاعدة يطلع المهام للمجموعات ....... وهذا شي تمام .....لكنه مايطلع المهام المسندة لأعضاء "الذين لاينتموا لمجموعة" أنا ابغى يطلع مهام الأعضاء .والأعضاء ايضاً بشرط (إنه تاريخ إنتهاء المهمة = تاريخ الجهاز)

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

#10

دحين لما ابغى انفذ إرسال إيميل لأعضاء الجروب + اسم المهمة التي وافق تاريخ إنتهائها التاريخ الحالي+ اسم الجروب عملت كدا

        List<string> emails = new List<string>();
        List<string> gr = new List<string>();
        List<string> task = new List<string>();
        foreach (DataRow row in dsTasks.Tables[0].Rows)
        {
            if (row["Group_Id"] != null)
            {
                gr.Add(row["Group_Name"].ToString());
               task.Add(row["Task_Name"].ToString());
               emails.Add(row["Email"].ToString());
                //string ema_megr = string.Join(";", emails);//المستقبل

            }
        }
        string tasks= string.Join(";",task);
       string groups= string.Join(";",gr);
        string email_gr= string.Join(";",emails);
        link = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/") + "Activecomplete.aspx?c=" + txtCode.Text.Trim() + "&id=" + id;
        emailtext = "<p>" + " اضغط على الرابط إذا انجزت المهمة " + "</p>" + "<p>" + "<a href=" + link + ">" + link + "</a>" + "</p>" + "<p>" + " اذا لم يعمل الرابط قم بنسخه وضعه في متصفحك   " + "</p>";
        MailMessage msg = new MailMessage("a7lyareej@gmail.com",email_gr, "iProject" + " , " + "هل انتهيت من إنجاز المهمة؟"+groups,tasks,emailtext);
        NetworkCredential mailAuth = new NetworkCredential("a7lyareej@gmail.com", "112233332211");
        SmtpClient mailClieant = new SmtpClient("smtp.gmail.com", 587);
        mailClieant.EnableSsl = true;
        mailClieant.UseDefaultCredentials = false;
        mailClieant.Credentials = mailAuth;
        mailClieant.Send(msg);

يظهر دا الخطأ

post-240687-075439100 1307964748_thumb.p

المرفقات
ll;;;asdfglh;j.png
#11

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

اختي بالنسبه للداله Join استخدمتها سابقا لربط ايميلات الاعضاء بفاصله منقوطه بمعنى اخرى ان المتغير الاول هو مصفوفه او مجموعه اما انت استخدمتي task وهو متغير نصي؟!! فأكيد ما بتضبط!!

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

#12

لا أنا خليت task مصفوفة ايضاً.....لكن ماأعرف هي طريقة صحيحة ولا لا

طيب سؤال: من هذا الكود:

   DataSet dsTasks = new DataSet();
        string sqlselect = (@"SELECT Tasks.Task_Id, Tasks.Task_Name, Groups.Group_Id, Groups.Group_Name, Members.Member_Id, Members.Member_Name, Members.Email
FROM Groups INNER JOIN
                         Members_Groups ON Groups.Group_Id = Members_Groups.Group_Id INNER JOIN
                         Tasks ON Groups.Group_Id = Tasks.Group_Id INNER JOIN
                         Members ON Members_Groups.Member_Id = Members.Member_Id where Tasks.End_Task=") + DateTime.Now.Date.Date.ToString();
        SqlDataAdapter adapter = new SqlDataAdapter(sqlselect, SqlConnection);

        adapter.Fill(dsTasks);

كيف أقدر أحصل على( اسم الجروب+ أعضائه + المهمة المكلف بها)

ثم الإرسال لإيميلات أعضائه ...

#13

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

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

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

#14

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

iProject.rar

اسم الصفحة completetask

iProject.rar

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

#15

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

اختي الاستعلام التالي يجلب لك المجموعات واعضاءها والمهمات الخاصه بهم, طبعا يمكنك وضع شرطك السابق بخصوص نهاية المهمة


SELECT Groups.Group_Name, Members.Member_Name, Members.Email, Tasks.Task_Name, Tasks.Start_Task, Tasks.End_Task
FROM Groups INNER JOIN
Members_Groups ON Groups.Group_Id = Members_Groups.Group_Id INNER JOIN
Members ON Members_Groups.Member_Id = Members.Member_Id INNER JOIN
Tasks ON Groups.Group_Id = Tasks.Group_Id

1

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

#16

طيب ابغى ارسل لإيميل أعضاء الجروب +ارسل اسم المهمة+ اسم الجروب....كيف؟

#17
    SqlConnection SqlConnection = new SqlConnection();
        SqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;
        DataSet dsTasks = new DataSet();


        string sqlselect = "SELECT Tasks.Task_Id,Tasks.Task_Name,Groups.Group_Id,Groups.Group_Name, Members.Member_Id,Members.Member_Name,Members.Email FROM Groups INNER JOIN Members_Groups ON Groups.Group_Id = Members_Groups.Group_Id INNER JOIN Tasks ON Groups.Group_Id = Tasks.Group_Id INNER JOIN Members ON Members_Groups.Member_Id = Members.Member_Id where Tasks.End_Task=@End_Task";
        SqlDataAdapter adapter = new SqlDataAdapter(sqlselect, SqlConnection);
        adapter.Fill(dsTasks);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("@End_Task", DateTime.Now.Date.Date.ToString());


        Repeater1.DataSource = dsTasks;
        Repeater1.DataBind();
        string link = null;      

foreach (DataRow row in dsTasks.Tables[0].Rows)
        {
            string member_id = row[5].ToString();
            string email = row[7].ToString();
            string group_name = row[4].ToString();
            string task_name = row[2].ToString();



            string emailtext;
            link = Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/") + "Activecomplete.aspx?c=" + txtCode.Text.Trim() + "&id=" + member_id;
            emailtext = "<p>" + "اضغط على الرابط في حال انجزت المهمة " + "</p>" + "<p>" + "<a href=" + link + ">" + link + "</a>" + "</p>" + "<p>" + " اذا لم يعمل الرابط قم بنسخه وضعه في متصفحك  " + "</p>";
            MailMessage msg = new MailMessage("a7lyareej@gmail.com", email, "iProject" + " , " + "هل انتهيت من إنجاز المهمة؟" + group_name, task_name);
            NetworkCredential mailAuth = new NetworkCredential("a7lyareej@gmail.com", "112233332211");
            SmtpClient mailClieant = new SmtpClient("smtp.gmail.com", 587);
            mailClieant.EnableSsl = true;
            mailClieant.UseDefaultCredentials = false;
            mailClieant.Credentials = mailAuth;
            mailClieant.Send(msg);



        }

هل هذة طريقة صحيحة في إرسال إيميل.....المشكلة إلى الآن dataset لاتعبئ والإرسال يعتمد على ذلك ...

#18

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

اختي حسب الفكرة السابقه التي ذكرتها باستخدام ال Join افترض انه معي نص اسمه members يحتوي على ايميلات الاعضاء مفصول بينها بفاصله منقوطه, جربي الكود التالي


msg.Subject=String.Format("{0}\{1}",Group,Task);
msg.To=members;

على افتراض انه تم خزن المجموعه والمهمه في المتغيرات المذكوره اعلاه

1

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

#19

طيب سؤال: ليه أحتاج الدالة join ......دحين المفترض يتخزن اسم المجموعة وإيميلات أعضاء المجموعة وإسم المهمة المكلفين بها في dataset ....هل ينفع أعمل foreach تمشي على صف في dataset ثم ترسل إيميل ...يعني كود إرسال الإيميل يكون داخل foreach..كل ماحصل على إيميل عضو للمجموعة يرسل له إنه انتهى تاريخ إنجاز المهمة كذا ويكون في الرسالة اسم المجموعة...

#20

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

اختي يمكنك تطبيق فكرتك ولكنها مكلفة تخيلي معاك 1000 عضو معناته سوف ترسلي 1000 رساله بريديه ولكن بفكرتي لوكان عددهم حتى 100000000 سيتم ارسال رساله واحده فقط

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

#21

ايوا صح ..... جربت بس في مشكلة بعد إضافة الإيميلات إلى list emails......عندما أريد فصلها لايتم التعرف على emails هنا:

string em=string.Join(";"emails); إنه لايتعرف على المتغير emails

 List<string> emails = new List<string>();
        //List<string> emails = new List<string>();
        //////List<string> task = new List<string>();
        foreach (DataRow row in dsTasks.Tables[0].Rows)
        {
            emails.Add(row["Email"].ToString());
        }
        string em=string.Join(";"emails);// 
       MailMessage msg = new MailMessage("a7lyareej@gmail.com", email, "iProject" + " , " + "هل انتهيت من إنجاز المهمة؟" + group_name, task_name);
#22

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

اختي لقد نسيتي فاصله جربي التالي

 string em=string.Join(";",emails);

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

#23

ايوا صح ..تم التعديل

#24

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

بالتوفيق اختي ..

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

#25
-الأمل- كتب:

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

تم تعديل هذه المشاركة بواسطة -الأمل- في 16 يونيو 2011 في 17:58

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