PDA

View Full Version : مشکل در لود شدن مقدار اولیه در کمبو



behrad110
دوشنبه 01 آذر 1389, 11:09 صبح
سلام خسته نباشید
یه مشکلی در مقدار اولیه دادن به کمبو دارم
قضیه به این صورته که دو تا کمبو وجود داره که قرار هست کمبو دوم زیر مجموعه های کمبو اول را نشون بده برای این کار یه select روی جدول مربوطه میزنم اما نکته اینجاست که من کد رو در قسمت selected index chenged نوشتم وقتی که به جای temp در کد ای که پایین میذارم عدد میدم مشکلی وجود نداره اما وقتی میخوام از کمبو اول بخونه error زیر رو میده
Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'.
کد من هم اینه که در اون کمبو 3 یک کد رو نمایش میده

SqlCommand cmd1 = new SqlCommand();
SqlConnection conn = new SqlConnection(strconnection);
temp = Convert.ToInt32(comboBoxEx3.SelectedValue);
cmd1.CommandText = "select * from sgroup where groupcode='" + temp + "'";

cmd1.Connection = conn;
DataTable tb1 = new DataTable();
SqlDataAdapter adt1 = new SqlDataAdapter(cmd1);

adt1.Fill(tb1);
comboBoxEx2.DataSource = tb1;
comboBoxEx2.ValueMember = "subgroupcode";
comboBoxEx2.DisplayMember = "subgroupname";
comboBoxEx4.DataSource = tb1;
comboBoxEx4.ValueMember = "subgroupcode";
comboBoxEx4.DisplayMember = "subgroupcode";

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

unique1984
دوشنبه 01 آذر 1389, 11:24 صبح
سلام
فکر نمی کنم لزومی داشته باشه شما temp رو به Int32 تبدیل کنید. چون از temp بعنوان داده رشته ای استفاده میکنید.


temp = comboBoxEx3.SelectedValue.ToString();

Reza_Yarahmadi
دوشنبه 01 آذر 1389, 11:44 صبح
نميدونم از چه كمبويي استفاده ميكنيد ولي بايد خاصيتي مثل خاصيت زير داشته باشه تا Value رو برگردونه

comboBoxEx3.SelectedValue.Text
//OR
comboBoxEx3.SelectedValue.Value

behrad110
دوشنبه 01 آذر 1389, 11:55 صبح
سلام
فکر نمی کنم لزومی داشته باشه شما temp رو به Int32 تبدیل کنید. چون از temp بعنوان داده رشته ای استفاده میکنید.


temp = comboBoxEx3.SelectedValue.ToString();

آخه groupcode در دیتا بیس از نوع int هست. اما این eror موقع لود شدن برنامه rease میشه یعنی قبل از اینکه event برسه پس مشکل مقدار دهی اولیه هست

behrad110
دوشنبه 01 آذر 1389, 12:09 عصر
نميدونم از چه كمبويي استفاده ميكنيد ولي بايد خاصيتي مثل خاصيت زير داشته باشه تا Value رو برگردونه

comboBoxEx3.SelectedValue.Text
//OR
comboBoxEx3.SelectedValue.Value

خود selectedvalue مقدار بر میگردونه منتها مشکل از لود شدن هستش فکر میکنم قبل از اینکه مقدار بگیره میخواد محتوای کمبو خالی رو به int تبدیل کنه که نمیشه

unique1984
دوشنبه 01 آذر 1389, 12:34 عصر
آخه groupcode در دیتا بیس از نوع int هست. اما این eror موقع لود شدن برنامه rease میشه یعنی قبل از اینکه event برسه پس مشکل مقدار دهی اولیه هست

اگر داده شما int هستش که این خط اشتباهه. سینگل کوتیشن برای داده های رشته ای استفاده میشه.

cmd1.CommandText = "select * from sgroup where groupcode='" + temp + "'";


temp رو از نوع string تعریف کنید و به همون صورتی که گفتم مقداردهی کنید و خط بالا رو هم به این صورت تصحیح کنید.

cmd1.CommandText = "select * from sgroup where groupcode=" + temp ;

behrad110
دوشنبه 01 آذر 1389, 14:25 عصر
ممنون از راهنمایی تون . ولی مقدار پیش فرض در کمبو چی هست؟ یعنی وقتی خالی هست

unique1984
سه شنبه 02 آذر 1389, 07:13 صبح
ممنون از راهنمایی تون . ولی مقدار پیش فرض در کمبو چی هست؟ یعنی وقتی خالی هست
در این حالت مقدار null هستش.