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

نام تاپیک: مشکل در خواندن اطلاعات از DataTable

  1. #1

    Smile مشکل در خواندن اطلاعات از DataTable

    سلام
    کد زیر اطلاعات رو به درستی از اکسل به DataTable میریزه و در DataGridView به درستی نشون میده
    فقط مشکلی که هست اینه که در قسمتی که میخوام با if بررسی کنم در سطر اول ستون اول مقدار اگه فلان بود فلان کار رو بکن این بررسی به درستی انجام نمیشه

    private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog of = new OpenFileDialog();
    of.Filter = "Excel 2007 Files|*.xlsx";
    of.Title = "Open Excel 2007 Files";
    DialogResult dr = new DialogResult();
    dr = of.ShowDialog();
    if (dr == DialogResult.Cancel)
    return;

    string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source= " + of.FileName + " ;Extended Properties=\"Excel 12.0;HDR=No;\"";

    string strSQL = "SELECT * FROM [Sheet1$]";

    OleDbConnection excelConnection = new OleDbConnection(connectionString);
    excelConnection.Open();

    OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection);
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);

    DataTable dTable = new DataTable();
    dataAdapter.Fill(dTable);

    DataGridView1.DataSource = dTable;
    int yCoord = DataGridView1.CurrentCellAddress.X;
    int n= dTable.Rows.Count;
    if (dTable.Rows[0][0] == "iran")
    {

    label1.Text = "IRAN";
    }
    dTable.Dispose();
    dataAdapter.Dispose();
    dbCommand.Dispose();

    excelConnection.Close();
    excelConnection.Dispose();

    }

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    الان این dTable.Rows[0][0] چی برمیگردونه؟

  3. #3

    Smile نقل قول: مشکل در خواندن اطلاعات از DataTable

    فايل اكسل رو براتون ميزارم
    لينك دانلود فايل اكسل

  4. #4
    کاربر دائمی آواتار amir200h
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    بروجرد->تهران->قم
    سن
    33
    پست
    782

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    listeDaro.Rows[1][0].ToString()=="iran"

    البته فکر کنم شما موقعی که میخواین روی دیتاگرید کلیک کردید این شرط چک بشه. درسته؟

  5. #5

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    نقل قول نوشته شده توسط amir200h مشاهده تاپیک
    listeDaro.Rows[1][0].ToString()=="iran"

    البته فکر کنم شما موقعی که میخواین روی دیتاگرید کلیک کردید این شرط چک بشه. درسته؟
    در واقع ميخوام تو كل اين DataTable بگرده و هر جا كه به اون كلمه رسيد يه عملي رو انجام بده
    اين كاري كه گفتيد هم جواب نداد

  6. #6
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    سلام.
    شرط رو بصورت زیر تغییر بدید. فکر میکنم مشکلتون حل بشه :
    if (dTable.Rows[0][0].ToString().Trim() == "iran")
    {
    label1.Text = "IRAN";
    }

  7. #7
    کاربر دائمی آواتار amir200h
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    بروجرد->تهران->قم
    سن
    33
    پست
    782

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    اگه دقیق بگین چی میخواین و چیکار میخواین کنین زودتر بجواب میرسین

  8. #8

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    نقل قول نوشته شده توسط veniz2008 مشاهده تاپیک
    سلام.
    شرط رو بصورت زیر تغییر بدید. فکر میکنم مشکلتون حل بشه :
    if (dTable.Rows[0][0].ToString().Trim() == "iran")
    {
    label1.Text = "IRAN";
    }
    حل شد مشکل همون Trim() بود

  9. #9

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    حالا اگه بخوام با یه دستور for کل اون DataTable رو بگردم چه باید کرد؟
    همونطوری که در فایل اکسل میبینید دو ستون وجود دارد که اولی نام شهرها است و ستون دوم عددی است که به آن اختصاص داده شده
    بر فرض در ستون اول دو بار کلمه "تهران" داریم برنامه باید عدد اونها رو که در ستون دوم هست باهم جمع کنه
    آخرین ویرایش به وسیله mehran63 : دوشنبه 21 مرداد 1392 در 12:28 عصر

  10. #10

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    نقل قول نوشته شده توسط mehran63 مشاهده تاپیک
    حالا اگه بخوام با یه دستور for کل اون DataTable رو بگردم چه باید کرد؟
    فکر نکنم با یه دستور بشه ، اگر بشه که منم مشتاقم یاد بگیرم
    اما می تونین با دو تا حلقه i,j که به سطر و ستون اشاره می کنه
    مقادیر رو داخل حلقه بدست بیارین

  11. #11

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    حالا با همون دو حلقه چطور این کار رو باید انجام داد؟

  12. #12
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    کنار یه ساحل خیلی زیبا
    پست
    922

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    خیلی ساده

    int a = 0;
    for (int i = 0; i < dTable.Rows.Count -1; i++)
    {

    if (dTable.Rows[i][0] == "تهران")
    {
    a += (int)dTable.Rows[i][1];

    }


    }
    آخرین ویرایش به وسیله esafb52 : دوشنبه 21 مرداد 1392 در 13:59 عصر

  13. #13

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    نقل قول نوشته شده توسط esafb52 مشاهده تاپیک
    خیلی ساده

    int a = 0;
    for (int i = 0; i < dTable.Rows.Count -1; i++)
    {

    if (dTable.Rows[i][0] == "تهران")
    {
    a += (int)dTable.Rows[i][1];

    }


    }
    به شكل زير درست شد
    a += convert.toint32(dTable.Rows[i][1]);

    حالا يه مسئله ديگه كه بهش برخورد كردم
    بر فرض در يك جا نوشته شده "شمال تهران" در جاي ديگه نوشته شده "تهران" در جايي هم نوشته "تهران جنوب" هر سه اين فيلدها در بررسي كه انجام ميشود يكي هستند.
    ولي وقتي در if كلمه "تهران" را بررسي ميكنيم فقط همان كلمه تهران را در بررسي درست ميشناسد و براي كلمات "تهران جنوب" و "شمال تهران" برنامه به خارج از if هدايت ميشود

  14. #14
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    کنار یه ساحل خیلی زیبا
    پست
    922

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    دوست عزی باز هم خیلی ساده است از متد کونتین استفاده کن
     int a = 0;
    for (int i = 0; i < dTable.Rows.Count; i++)
    {
    string s = dTable.Rows[i][0].ToString();
    if (s.Contains("تهران"))
    {
    a += Convert.ToInt32(dTable.Rows[i][1]);

    }


    }

  15. #15
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    با سلام.
    می توانید برای اینکه مطمئن شوید رشته دوم در رشته اول موجود است از تابع IndexOf استفاده کنید.
    برای به دست آوردن تعداد تکرار آیتمها از روش تاپیک زیر هم می توانید استفاده کنید:
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

  16. #16

    نقل قول: مشکل در خواندن اطلاعات از DataTable

    دوستان متشکر از لطفتون اون مسایل حل شد، ولی یه مسئله دیگه
    برنامه رو به شکل زیر نوشتم
    private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog of = new OpenFileDialog();
    of.Filter = "Excel 2007 Files|*.xlsx";
    of.Title = "Open Excel 2007 Files";
    DialogResult dr = new DialogResult();
    dr = of.ShowDialog();
    if (dr == DialogResult.Cancel)
    return;

    string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source= " + of.FileName + " ;Extended Properties=\"Excel 12.0;HDR=No;\"";

    string strSQL = "SELECT * FROM [QueryExportToExcel$]";

    OleDbConnection excelConnection = new OleDbConnection(connectionString);
    excelConnection.Open();

    OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection);
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);

    DataTable dTable = new DataTable();
    dataAdapter.Fill(dTable);

    DataGridView1.DataSource = dTable;

    int tehran = 0;
    int esfahan = 0;
    int shiraz = 0;
    for (int i = 0; i < dTable.Rows.Count; i++)
    {
    string s=dTable.Rows[i][0].ToString().Trim();
    if (s.Contains ( "تهران"))
    {
    tehran += Convert.ToInt32(dTable.Rows[i][1]) * 2;
    }
    if (s.Contains( "اصفهان"))
    {
    esfahan += Convert.ToInt32(dTable.Rows[i][1]) * 3;
    }
    if (s.Contains( "شیراز"))
    {
    shiraz += Convert.ToInt32(dTable.Rows[i][1]) * 5;
    }

    }
    label1.Text ="امتیاز:"+ (tehran + esfahan + shiraz).ToString();

    dTable.Dispose();
    dataAdapter.Dispose();
    dbCommand.Dispose();

    excelConnection.Close();
    excelConnection.Dispose();

    }
    }

    فایل Excel مربوط به برنامه
    همانطور که میبینید اطلاعات از یه فایل Excel خوانده شده و در DataTable ریخته میشه و از اونجا برای عملیاتی که نیاز دارم استفاده میکنم
    همانطور که در برنامه میبینید به ازای هر شهری که در فایل excel وجود دارد یک If گذاشتم
    مشکل ایجاست که اگه یه شهر به این فایل اکسل اضافه بشه اونوقت من باید برنامه رو دوباره تغییر بدم و یه If دیگه هم واسه اون اضافه کنم.
    برای رفع این مشکل چه کنم که دوباره برنامه رو تغییر ندم؟

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

  1. سوال: مشکل با خواندن اطلاعات از اس کيو ال
    نوشته شده توسط hamid67fathi در بخش PHP
    پاسخ: 6
    آخرین پست: یک شنبه 29 دی 1387, 17:27 عصر
  2. سوال: مشکل در خواندن اطلاعات از SqlDataReader
    نوشته شده توسط milliondollar در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 10 آذر 1387, 22:13 عصر
  3. مشکل در خواندن اطلاعات
    نوشته شده توسط khomar در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 5
    آخرین پست: چهارشنبه 01 اسفند 1386, 22:02 عصر
  4. پاسخ: 7
    آخرین پست: شنبه 01 اردیبهشت 1386, 20:50 عصر
  5. مشکل در خواندن اطلاعات از DB
    نوشته شده توسط M.kavyani در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 29 آبان 1384, 16:27 عصر

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

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