نمایش نتایج 1 تا 5 از 5

نام تاپیک: خواندن اطلاعات از دیتاتیبل به صورت x تایی

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    Iran
    پست
    1,338

    خواندن اطلاعات از دیتاتیبل به صورت x تایی

    فرض کنید n تا ایمیل در جدول داریم به شکل زیر
    1@yahoo.com
    2@yahoo.com
    3@yahoo.com
    4@yahoo.com
    5@yahoo.com
    6@yahoo.com
    7@yahoo.com
    8@yahoo.com
    9@yahoo.com
    .
    .
    .
    n@yahoo.com
    و حالا می خواهیم به شکل زیر اینها چاپ بشن.
    لطفاً راهنمایی کنید.
    1@yahoo.com
    2@yahoo.com
    *
    3@yahoo.com
    4@yahoo.com
    5@yahoo.com
    *
    6@yahoo.com
    7@yahoo.com
    8@yahoo.com
    *
    9@yahoo.com
    .
    .
    .
    n@yahoo.com

    من اینجا فرض کردم 3 تا 3 تا بخواهیم ایمیلها رو نشون بدیم.
    این کدها جواب دلخواه من رو نمی دن
    DataTable dt = GetAllEmail();              int j = 3;             try             {                 for (int m = 0; m < dt.Rows.Count; m += j)                 {                     for (int i = m; i < m + j; i++)                     {                           Label2.Text = dt.Rows.Count.ToString() + "<br/>";                         if (i<dt.Rows.Count)                             if ((m+j)<dt.Rows.Count)                                                      strEmail = dt.Rows[i]["Email"].ToString();                         msg.To.Add(strEmail);                          Label1.Text += strEmail + "<br/>";                         //client.Send(msg);                       }                  }

    البته فعلاً کاراکتر * رو بینشون هم نشون ندادم ولی در همون مرحله 3 تا 3 تا گرفتن مشکل دارم.

    البته کار اصلی که می خوام انجام بدم اینه که ایمیلها رو x تا x تا از دیتاتیبل بخونم و ایمیل بفرستم به این x تا بعد برم سراغ x تای بعدی بخونم و ایمیل بفرستم و الی آخر این کار تکرار بشه.
    کاری هم که در بالا گفتم به خاطر تست این موضوع هست.

  2. #2

    نقل قول: خواندن اطلاعات از دیتاتیبل به صورت x تایی و چاپ یک کاراکتر بین آنها

    به اینصورت اصلاح کن:

    DataTable dt = new DataTable();
    dt.Columns.Add("Email");

    dt.Rows.Add("1@yahoo.com");
    dt.Rows.Add("2@yahoo.com");
    dt.Rows.Add("3@yahoo.com");
    dt.Rows.Add("4@yahoo.com");
    dt.Rows.Add("5@yahoo.com");
    dt.Rows.Add("6@yahoo.com");
    dt.Rows.Add("7@yahoo.com");
    dt.Rows.Add("8@yahoo.com");

    MailMessage msg = new MailMessage();
    int count = 3;
    //try
    {
    label2.Text = dt.Rows.Count.ToString();
    for (int offset = 0; offset < dt.Rows.Count; offset+=count)
    {
    msg.To.Clear();

    string tempStr = string.Empty;
    int newIndex = 0;

    for (int indexer = 0; indexer < count; indexer++)
    {
    newIndex = offset + indexer;
    if (newIndex < dt.Rows.Count)
    {
    string strEmail = dt.Rows[newIndex]["Email"].ToString();
    tempStr += strEmail + "\t";
    msg.To.Add(strEmail);
    }
    }
    listBox2.Items.Add(tempStr);
    //client.Send(msg);
    }
    }

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    Iran
    پست
    1,338

    نقل قول: خواندن اطلاعات از دیتاتیبل به صورت x تایی

    دیروز با تعداد 8 ایمیل خودم و 2 ایمیل دیگر تست کردم (یعنی 10 تا ایمیل در دیتابیس بود) طبق انتظار 8 تا ایمیل دریافت کردم.
    ولی امروز با 1 ایمیل خودم و 2 ایمیل دیگر در جدول (یعنی 3 ایمیل در جدول) تست کردم انتظار داشتم فقط یک ایمیل دریافت کنم ولی 3 تا دریافت کردم. دلیل این چیست؟ یعنی فکر می کنم داره در نظر می گیره 3 تا رکورد در جدول هست و به تعداد کل رکوردها برای یک نفر ایمیل می فرسته.

    اومدم count رو گذاشتم 5 دیدم 5 تا فرستاده به یه نفر.
    با count=2، دو تا ایمیل فرستاده شد بهم.
    ولی جالب اینجاست که در لیست باکس بهم درست نشون می ده نتیجه رو. یعنی مثلاً اگه count رو گذاشتم 2 شکل زیر در لیست باکس بهم نشون داده میشه
    * 10@yahoo.com
    *100@yahoo.com
    خودم اون ستاره ها رو گذاشتم برای اینکه بفهمم چند تا چند تا می خونه.

    لطفاً راهنمایی کنید.
    اینم کدها برای اینکه بدونید اون(client.send(msg رو کجا گذاشتم.
    DataTable dt = GetAllEmail();

    int count = 2;
    //try
    {
    l.Text = dt.Rows.Count.ToString();
    for (int offset = 0; offset < dt.Rows.Count; offset += count)
    {
    msg.To.Clear();

    string tempStr = string.Empty;
    int newIndex = 0;

    for (int indexer = 0; indexer < count; indexer++)
    {
    newIndex = offset + indexer;
    if (newIndex < dt.Rows.Count)
    {
    string strEmail = dt.Rows[newIndex]["Email"].ToString();
    tempStr += strEmail + "\t";
    msg.To.Add(strEmail);


    client.Send(msg);
    }
    }
    listBox2.Items.Add(tempStr + "*");

    }
    }
    آخرین ویرایش به وسیله bftarane : یک شنبه 11 اسفند 1398 در 17:56 عصر

  4. #4

    نقل قول: خواندن اطلاعات از دیتاتیبل به صورت x تایی

    اشتباه از جای client.Send(msg); هست. اول باید ایمیل ها به To اضافه بشن بعد خارج حلقه داخلی ارسال انجام بشه.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    Iran
    پست
    1,338

    نقل قول: خواندن اطلاعات از دیتاتیبل به صورت x تایی

    نمی دونم بیرون هم که می زارم نتیجه دلخواه رو نمی گیرم موقع ارسال ایمیل.
    از اون که بگذریم همین الآن با 6 تا ایمیل در جدول و Count برابر 2 سه بار تست کردم هر 3 بار نتیجه متفاوت بود Spam هم نشده بود موندم جریان چیه؟

    برای 5 تا ایمیل جواب دلخواه داد ولی برای 2 تا و 3 تا هم تست کردم نتیجه دلخواه نبود.
    حالا Trace می کنم شاید بتونم مشکل رو بفهمم. ممنون.
    آخرین ویرایش به وسیله bftarane : چهارشنبه 08 آبان 1392 در 21:43 عصر

تاپیک های مشابه

  1. سوال: نحوی خواندن اطلاعات گرید ویو به صورت تایمری و رندوم
    نوشته شده توسط korosh00 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: پنج شنبه 10 مرداد 1392, 14:26 عصر
  2. خواندن اطلاعات از دیتاتیبل
    نوشته شده توسط sara_t در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: چهارشنبه 05 مهر 1391, 12:12 عصر
  3. مشکل خواندن اطلاعات از بانک به صورت دسته جمعی
    نوشته شده توسط reza_majid68 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 06 اردیبهشت 1389, 13:26 عصر
  4. خواندن اطلاعات به صورت مناسب و با سرعت بالا
    نوشته شده توسط FirstLine در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 0
    آخرین پست: سه شنبه 06 فروردین 1387, 10:47 صبح
  5. خواندن اطلاعات ذخیره شده روی هارد به صورت بایت به بایت
    نوشته شده توسط مهدی رحیم زاده در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 20 بهمن 1386, 09:18 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •