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

نام تاپیک: کامبوباکس :Unable to cast object of type 'System.Data.DataRowView' to type 'System.String'

  1. #1

    Tick کامبوباکس :Unable to cast object of type 'System.Data.DataRowView' to type 'System.String'

    سلام
    من بارها با این کد مقدار آیتم انتخاب شده کامبوباکس توسط کاربر رو خوندم اما نمیدونم چرا الان که از اون استفاده می کنم exceptioncزیر رخ میده
    Unable to cast object of type 'System.Data.DataRowView' to type 'System.String'

    اینم بگم کهData source کامبوباکس ،ِData Table است
    اینم کدی که استفاده کردم:

     
    code_nemuneye_azmayeshgahi = (string)cmb_codenemune.SelectedItem;

    از اینم استفاده کردم مشکل حل نشد
     
    code_nemuneye_azmayeshgahi = (string)cmb_codenemune.SelectedItem.ToString();

    متشکرم

  2. #2
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165
    دلیلش اینه که شما وقتی داری توی Combox ت اضافه می کنی به جای متن یک شیء از جنس DataRowView اضافه کردی. احتمالا یه کدی مثل این کد:

    DataSet ds = new DataSet();
    da.Fill(ds);
    foreach(DataRow row in ds.Tables[0].Rows)
    cmb_codeNameune.Items.Add(row);

    اگر اینجوری است! به جای کد بالا میتونی از این روش استفاده کنی و در نتیجه مشکل کد های بالات حل میشه:

    DataSet ds = new DataSet();
    da.Fill(ds);
    foreach(DataRow row in ds.Tables[0].Rows)
    cmb_codeNameune.Items.Add(row["Name"].ToString());


  3. #3
    نقل قول نوشته شده توسط Masoud_TB مشاهده تاپیک
    دلیلش اینه که شما وقتی داری توی Combox ت اضافه می کنی به جای متن یک شیء از جنس DataRowView اضافه کردی.
    [/code]
    نه مسعود جان. کامبوباکس رو اینجوری پر کردم:
     
    string str = "select code_nemuneye_azmayeshgahi from nemuneye_azmayeshgahi where vaziat=1 and (code_forme_ersale_nemune is null or code_forme_ersale_nemune='')";
    cmb_codenemune.DataSource= db.dt_dtagridview(str);
    cmb_codenemune.DisplayMember = "code_nemuneye_azmayeshgahi";

    که متد dt_dtagridview دستور select رو اجرا می کنه و نتیجه اونو در یک دیتاتیبل میریزه و دیتاتیبل رو برمی گردونه.

  4. #4
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165
    پس اینجوری باید جواب رو بگیری:

    string test = comboBox1.SelectedItem.ToString();

  5. #5
    سلام.
    هنگامیکه شی ء کامبوباکس به شی ء DataTable بایند میشود ، تمام آبجکت های آن از نوع DataRowView خواهند بود و برای دسترسی به سطر جاری ، باید مقدار پروپرتی SelectedItem را به نوع ذکر شده تبدیل کنید :

    object selectedValue = (comboBox.SelectedItem as DataRowView)["columnName"];
    I've just started tweeting!
    @Alireza_Maddah

  6. #6

    نقل قول: کامبوباکس :Unable to cast object of type 'System.Data.DataRowView' to type 'System.String'

    سلام و خسته نباشيد
    ممنون از جوابتون
    من كد فوق را نوشتم در اولين بار يعنی page-loade برنامه مقدار مورد نظر را درست نشان مي دهند ولي هنگامي كه مقدار جديدي انتخاب مي كنم و button را كليك مي كنم و به اين مقدار جديد نياز دارم همان عبارن system.data.datarow را نشان مي دهند. علت اين مشكل؟
    ژبا تشكر

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

  1. خطا : An unhandled exception of type 'System.Data.OleDb.OleD
    نوشته شده توسط tazekar در بخش C#‎‎
    پاسخ: 7
    آخرین پست: شنبه 26 شهریور 1390, 21:06 عصر
  2. 'exception of type 'System.StackOverflowException
    نوشته شده توسط federrer در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: جمعه 17 اسفند 1386, 17:39 عصر
  3. type namespace ado does not exist in in the class system.Data.ADO
    نوشته شده توسط ibasoft در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 24 بهمن 1386, 06:07 صبح
  4. Object type cannot be converted to target type.
    نوشته شده توسط Beyondsoft در بخش VB.NET
    پاسخ: 1
    آخرین پست: سه شنبه 23 خرداد 1385, 10:08 صبح
  5. Exception of type System.StackOverflowException was thrown.
    نوشته شده توسط nazaninam در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 05 اسفند 1384, 07:52 صبح

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

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