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

نام تاپیک: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

  1. #1
    کاربر دائمی آواتار ebrahim.rayatparvar
    تاریخ عضویت
    آبان 1392
    محل زندگی
    https://www.youtube.com/c/zangclass
    پست
    714

    Exclamation خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    سلام و درود به دوستان خوبم.

    من میخوام مقدار سطرهای گرید خودمو که با کامپوننت Devexpress طراحی کردم بریزم به داخل DataTable.
    چند نکته وجود داره که باید بگم :

    1- گرید من 5 ستون داره
    2- ستون اول که برای ذخیره کد جدولی هست Visible=false
    3- برای اولین بار میخوام ذخیره کنم مقدار string.Empty برای ستون کد میفرستم و داخل SQL Serever بهش مقدار داده میشه.
    4- مشکل بزرگ که پیغام خطا معروف Object reference not set to an instance of an object میاد که همه میدونن برای چیه ولی همین منو گیج کرده.
    5- من تو تریس که میزارم مثلا اگه 4 سطر به گرید اضافه کنم حلقه for من تا 3 مرحله اول درست کار می کنه ولی تو مرحله آخر رو خط اول انتقال داده پیغام خطا بالا رو میده.
    6- من تو MessageBox تعداد سطر رو نشون دادم میزنه 4 بعد مرحله 4 پیغام خطا میده.
    7- حلقه خودم رو منهای 1 کردم اون 3سطر به درستی ذخیره میشه.
    فعلا همین نکات که به ذهنم رسیده

    کد هم به شرح زیره :


    blCls._Kind = 3;
    for (int i = 0; i < gridViewCarName.RowCount ; i++)
    {
    if (gridViewCarName.RowCount > 0)
    {
    dt3.Rows.Add();
    dt3.Rows[i]["CodeCarList"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CodeCarList"]);
    dt3.Rows[i]["CarName"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarName"]);
    string strCarType = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarType"]).ToString();
    if (strCarType == "سبک")
    dt3.Rows[i]["CarType"] = 1;
    else if (strCarType == "سنگین")
    dt3.Rows[i]["CarType"] = 2;
    else if (strCarType == "ساختمانی")
    dt3.Rows[i]["CarType"] = 3;
    dt3.Rows[i]["CarGroup"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarGroup"]);
    dt3.Rows[i]["Manufacturer"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["Manufacturer"]);
    }
    }
    blCls._CarList = dt3;
    str = blCls.dalAddList();

  2. #2
    کاربر دائمی آواتار ebrahim.rayatparvar
    تاریخ عضویت
    آبان 1392
    محل زندگی
    https://www.youtube.com/c/zangclass
    پست
    714

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    سلام دوستان
    کسی اگه نظری به ما هم بکنید من ممنون میشم.

  3. #3
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable



    DataTable tbl = new DataTable();
    DataRow Drow;
    for (int i = 0; i < gridViewCarName.RowCount; i++)
    {
    Drow = tbl.NewRow();
    Drow["CarName"] = ((DataRowView)gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarName"]).ToString();

    tbl.Rows.Add(Drow);

    }


  4. #4
    کاربر دائمی آواتار ebrahim.rayatparvar
    تاریخ عضویت
    آبان 1392
    محل زندگی
    https://www.youtube.com/c/zangclass
    پست
    714

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    سلام داداش علی.
    این کد هم جای گذاری کردم دقیقا همون مشکل قبل رو داره دقیقا حلقه برای بار آخر که وارد میشه به اولین خط انتقال
    Drow["CarName"] = ((DataRowView)gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarName"]).ToString();
    که میرسه دوباره پیغام خطا Object reference not set to an instance of an object رو میده نمیدونم چرا برای مراحل اول نمیده در صورتی که همه اینها 0 هستند.

  5. #5
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    با کنترل Grid شرکت DevExpress کار نکردم ولی گویا مشکل وهله سازی هست ممکنه دسترسی به ردیفهای گراید با GetRowCellValue اشتباه باشه
    روش ارسال اطلاعات از دیتاگراید به دیتاتیبل با حلقه بدین روش صحیح هست و مشکلی نداره میتونید با یک دیتاگراید استاندارد ویندوز امتحان کنید

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    سلام
    فکر کنم باید به شکل زیر بنویسید :

    for (int i = 0; i < gridViewCarName.RowCount-1 ; i++)

  7. #7
    کاربر دائمی آواتار ebrahim.rayatparvar
    تاریخ عضویت
    آبان 1392
    محل زندگی
    https://www.youtube.com/c/zangclass
    پست
    714

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    نقل قول نوشته شده توسط aslan مشاهده تاپیک
    سلام
    فکر کنم باید به شکل زیر بنویسید :

    for (int i = 0; i < gridViewCarName.RowCount-1 ; i++)
    سلام مهندس جان
    من بالا هم گفتم منهای 1 می کنم درست کار می کنه فقط مشکلی که داره اون وقت سطر آخر گرید رو تو Datatable نمیریزه.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    نقل قول نوشته شده توسط ebrahim.rayatparvar مشاهده تاپیک
    سلام و درود به دوستان خوبم.

    من میخوام مقدار سطرهای گرید خودمو که با کامپوننت Devexpress طراحی کردم بریزم به داخل DataTable.
    چند نکته وجود داره که باید بگم :

    1- گرید من 5 ستون داره
    2- ستون اول که برای ذخیره کد جدولی هست Visible=false
    3- برای اولین بار میخوام ذخیره کنم مقدار string.Empty برای ستون کد میفرستم و داخل SQL Serever بهش مقدار داده میشه.
    4- مشکل بزرگ که پیغام خطا معروف Object reference not set to an instance of an object میاد که همه میدونن برای چیه ولی همین منو گیج کرده.
    5- من تو تریس که میزارم مثلا اگه 4 سطر به گرید اضافه کنم حلقه for من تا 3 مرحله اول درست کار می کنه ولی تو مرحله آخر رو خط اول انتقال داده پیغام خطا بالا رو میده.
    6- من تو MessageBox تعداد سطر رو نشون دادم میزنه 4 بعد مرحله 4 پیغام خطا میده.
    7- حلقه خودم رو منهای 1 کردم اون 3سطر به درستی ذخیره میشه.
    فعلا همین نکات که به ذهنم رسیده

    کد هم به شرح زیره :


    blCls._Kind = 3;
    for (int i = 0; i < gridViewCarName.RowCount ; i++)
    {
    if (gridViewCarName.RowCount > 0)
    {
    dt3.Rows.Add();
    dt3.Rows[i]["CodeCarList"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CodeCarList"]);
    dt3.Rows[i]["CarName"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarName"]);
    string strCarType = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarType"]).ToString();
    if (strCarType == "سبک")
    dt3.Rows[i]["CarType"] = 1;
    else if (strCarType == "سنگین")
    dt3.Rows[i]["CarType"] = 2;
    else if (strCarType == "ساختمانی")
    dt3.Rows[i]["CarType"] = 3;
    dt3.Rows[i]["CarGroup"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["CarGroup"]);
    dt3.Rows[i]["Manufacturer"] = gridViewCarName.GetRowCellValue(i, gridViewCarName.Columns["Manufacturer"]);
    }
    }
    blCls._CarList = dt3;
    str = blCls.dalAddList();
    سلام
    در کد بالا کد if داخل حلقه for بی معنی است ..
    روش کار به این شکل باید باشد :
    در داخل حلقه ابتدا باید یک datarow ایجاد کنید

    DataRow dr = dt3.NewRow();

    سپس ستونهای مورد نظر در گرید را خوانده و در DataRow ایجاد شده قرار میدین
    در انتها DataRow ایجاد شده را به دیتاتیبل اضافه میکنید ....
    شکل کلی دستورات شبیه کدهای زیر میتونه باشه :

    foreach (GridViewRow row in gridViewCarName.Rows)
    {
    DataRow dr = dt3.NewRow();
    dr["CodeCarList"] = row.Cells[1].Text; // شماره ستون مربوطه در گرید بجای 1 جایگزین شود
    dr["CarName"] = row.Cells[2].Text; // ...
    //...........
    dt3.Rows.Add(dr);
    }

    موفق باشید

  9. #9
    کاربر دائمی آواتار ebrahim.rayatparvar
    تاریخ عضویت
    آبان 1392
    محل زندگی
    https://www.youtube.com/c/zangclass
    پست
    714

    نقل قول: خطا در انتقال GridControl Devexpress در انتقال داده گربد به DataTable

    سلام مهندس جان
    من این کد رو هم زدم همون مشکل رو داشت برای رفع این مشکل از Bindingource استفاده کردم کارم درست شد نیاز به این همه کد هم نیست.

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

  1. حرفه ای: انتقال اطلاعات Excel به پایگاه داده
    نوشته شده توسط r_k20062007 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 22 خرداد 1389, 19:27 عصر
  2. انتقال اطلاعات بین 2 پایگاه داده
    نوشته شده توسط babak869 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 8
    آخرین پست: سه شنبه 28 اردیبهشت 1389, 02:17 صبح
  3. پاسخ: 11
    آخرین پست: شنبه 03 مرداد 1388, 13:29 عصر
  4. سوال: انتقال اطلاعات ازكمبوباكس به پايگاه داده
    نوشته شده توسط Iran58 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 07 خرداد 1388, 13:48 عصر
  5. پاسخ: 2
    آخرین پست: شنبه 18 آبان 1387, 22:10 عصر

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

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