PDA

View Full Version : مشکل در انتخاب آیتم مورد نظر از combobox بایند شده



bachebahal_1363
سه شنبه 18 تیر 1387, 18:56 عصر
سلام دوستان
بنده یه combobox رو به روش زیر بایند کردم و می خوام زمانی که بر روی یک button کلیک کردم آیتم انتخاب شده رو به صورت string برگردونه اما بجای آیتم انتخاب شده string زیر رو بر می گردونه مشکل از کجاست ؟


string strConnection =
Properties.Settings.Default.AppConnectionString.To String();
SqlConnection cn = new SqlConnection(strConnection);
SqlDataAdapter da =
new SqlDataAdapter("SELECT MyFiled FROM MyTable", cn);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds, "MyTable");
Combobox.DataSource = ds;
Combobox.DataSource = ds.Tables["MyTable"].DefaultView;
Combobox.DisplayMember = "MyFiled ";



خروجی : System.Data.DataRowView


کد button :


MessageBox.Show(Combobox.SelectedItem.ToString());

علیرضا مداح
سه شنبه 18 تیر 1387, 19:07 عصر
سلام دوست عزیز ،
هنگامیکه شیء کامبوباکس را به یک DataTable بایند مینمایید ، تمامی اشیاء/آیتم های آن از نوع شیء DataRowView خواهند بود ، به طور مثال برای دسترسی به یکی از فیلدهای سطر/آیتم انتخاب شده فعلی در کامبوبامس باید از کد زیر استفاده نمایید :


string selectedValue = ((DataRowView)comboBox1.SelectedItem)["FieldName"].ToString();
MessageBox.Show(selectedValue);

top7news
چهارشنبه 19 تیر 1387, 01:08 صبح
دو تا نکته خدمت دوست خوبم بچه باحال
اول اینکه چرا باز هم از روش دستی برای بایند کردن استفاده کردی ، بعد از اینهمه بحثی که تو تاپیک های قبلی در مورد مزایای اسفاده از ویزارد گفتیم ؟
اگه با استفاده از ویزارد خود دات نت combo box رو بایند کنی دیگه نیاز به اینهمه کد نویسی نیست و خطا های برنامه ات هم پایین میاد .
اونوقت میتونی با همون کد خودت هم جواب بگیری
البته بجای Combobox.SelectedItem.ToString بهتر از
convert to string(.....);
استفاده کنی .

bachebahal_1363
چهارشنبه 19 تیر 1387, 09:27 صبح
دو تا نکته خدمت دوست خوبم بچه باحال
اول اینکه چرا باز هم از روش دستی برای بایند کردن استفاده کردی ، بعد از اینهمه بحثی که تو تاپیک های قبلی در مورد مزایای اسفاده از ویزارد گفتیم ؟
اگه با استفاده از ویزارد خود دات نت combo box رو بایند کنی دیگه نیاز به اینهمه کد نویسی نیست و خطا های برنامه ات هم پایین میاد .
اونوقت میتونی با همون کد خودت هم جواب بگیری
البته بجای Combobox.SelectedItem.ToString بهتر از
convert to string(.....);
استفاده کنی .

خوب تنها دلیلی که برای من اهمیت داره و چشمم از اون ترسیده به خاطر اینه که برنامه من جهت استفاده در شبکه هست و اطلاعات رو از سرور دریافت می کنه و به خاطر اینکه من از Connectionstring مطمئن خودم استفاده کنم به صورت دستی تمام control هام رو بایند می کنم .

اما فکر می کنم که اگر به صورت دستی ، از طریق Dataset ی که از دیتابیسم می سازم استفاده کنم فقط کافیه موقع استفاده از دیتاست به وسیله یه دیتاآداپتر و commandtext و همچنین Connectionstring خودم بتونم Dataset رو Fill کنم و از ویزاد dataset هم استفاده کنم .
درسته ؟