PDA

View Full Version : پر کردن combobox به روش LINQ



vapa_71
جمعه 13 اردیبهشت 1392, 11:28 صبح
سلام دوستان من کد مربوط به بایند کردن رو به روش ado.net دارم اما هرچی گشتم کد مناسبی برای روش LINQ پیدا نکردم (شاید من بد گشتم) اگه کسی میتونه بایند کردن اطلاعات رو به combobox رو واسم بذاره لطفا از روش LINQ

_behnam_
جمعه 13 اردیبهشت 1392, 11:58 صبح
سلام. ببین با این کارت راه میوفته؟
var querySelect=from allField in tablename select allField.columnName;
combo.DataSource=querySelect;
combo.DataBind();


البته قبل از tablename باید شئی که از Linqtosql ساختی رو بزاری

vapa_71
جمعه 13 اردیبهشت 1392, 12:16 عصر
سلام. ببین با این کارت راه میوفته؟
var querySelect=from allField in tablename select allField.columnName;
combo.DataSource=querySelect;
combo.DataBind();


البته قبل از tablename باید شئی که از Linqtosql ساختی رو بزاری

این خط رو ایراد میگیره


combo.DataBind();
Error 1 'System.Windows.Forms.ComboBox' does not contain a definition for 'DataBind' and no extension method 'DataBind' accepting a first argument of type 'System.Windows.Forms.ComboBox' could be found (are you missing a using directive or an assembly reference?) C:\Users\MY\Documents\Visual Studio 2010\Projects\Factor\Factor\Form3.cs 67 23 Factor

elahe471
جمعه 13 اردیبهشت 1392, 12:25 عصر
باید بگین کدوم فیلد مقدارشه کدوم فیلد رو نشون بده



DataClasses1DataContext dt = new DataClasses1DataContext();
var query = from p in dt.tblCategories
select p;
this.comboBox1.DataSource=query.ToArray();
this.comboBox1.DisplayMember = "categoryTitle";
this.comboBox1.ValueMember = "categoryId";

_behnam_
جمعه 13 اردیبهشت 1392, 12:32 عصر
بله.
ببخشید من صفحه وب رو باز داشتم توی ASP با Drop نوشتم کد رو .

کد جدید :

var querySelect = from allField in db.tbl_names
select allField.clmn_name;
combo.DataSource = querySelect;
combo.DisplayMember = "tbl_name";
combo.Refresh();

vapa_71
جمعه 13 اردیبهشت 1392, 12:33 عصر
باید بگین کدوم فیلد مقدارشه کدوم فیلد رو نشون بده



DataClasses1DataContext dt = new DataClasses1DataContext();
var query = from p in dt.tblCategories
select p;
this.comboBox1.DataSource=query.ToArray();
this.comboBox1.DisplayMember = "categoryTitle";
this.comboBox1.ValueMember = "categoryId";
خیلی ممنونم عالی بود حالا اگه بخوایم یه کمبو باکس دیگه رو طبق این کمبو باکس پر کنیم چه کار باید کرد ؟

vapa_71
جمعه 13 اردیبهشت 1392, 12:36 عصر
باید بگین کدوم فیلد مقدارشه کدوم فیلد رو نشون بده



DataClasses1DataContext dt = new DataClasses1DataContext();
var query = from p in dt.tblCategories
select p;
this.comboBox1.DataSource=query.ToArray();
this.comboBox1.DisplayMember = "categoryTitle";
this.comboBox1.ValueMember = "categoryId";
خیلی ممنونم عالی بود حالا اگه بخوایم یه کمبو باکس دیگه رو طبق این کمبو باکس پر کنیم چه کار باید کرد ؟

vapa_71
جمعه 13 اردیبهشت 1392, 12:40 عصر
بله.
ببخشید من صفحه وب رو باز داشتم توی ASP با Drop نوشتم کد رو .

کد جدید :

var querySelect = from allField in db.tbl_names
select allField.clmn_name;
combo.DataSource = querySelect;
combo.DisplayMember = "tbl_name";
combo.Refresh();

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

elahe471
جمعه 13 اردیبهشت 1392, 12:43 عصر
منظورتون اینه که با توجه به آیتمی که کاربر کلیک میکنه یه Combo دیگه لود شه ؟

vapa_71
جمعه 13 اردیبهشت 1392, 12:46 عصر
منظورتون اینه که با توجه به آیتمی که کاربر کلیک میکنه یه Combo دیگه لود شه ؟

الان یک combobox رو پر کردیم حالا میخوایم combobox دوم طبق این اولی پر بشه مثلا اولی گروه آزمایش دومی آزمایش های اون گروه رو نشون میده

_behnam_
جمعه 13 اردیبهشت 1392, 13:12 عصر
خوب دوست عزیز باز هم به همین روال توی قسمت رویداد SelectedIndexChanged کامبوباکس مقدار کامبوباکس رو بگیرید و توی دیتابیس SELECT کنید و حاصل بدست آمده رو ست کنید واسه کامبوبکس دوم

var querySelect = from allField in db.tbl_names
where allField.clmn_name == comboBox1.Text
select allField.clmn_id;
comboBox2.DataSource = querySelect;

elahe471
جمعه 13 اردیبهشت 1392, 14:45 عصر
آره دیگه مثل بالایی میشه ، بر اساس کلید خارجی فقط یه Where اضافه میشه مثلا :


where s.Cat_Id==Convert.ToInt32(comboBox1.SelectedValue)

siavash525
جمعه 27 اردیبهشت 1392, 15:45 عصر
خوب دوست عزیز باز هم به همین روال توی قسمت رویداد SelectedIndexChanged کامبوباکس مقدار کامبوباکس رو بگیرید و توی دیتابیس SELECT کنید و حاصل بدست آمده رو ست کنید واسه کامبوبکس دوم

var querySelect = from allField in db.tbl_names
where allField.clmn_name == comboBox1.Text
select allField.clmn_id;
comboBox2.DataSource = querySelect;

دوست من اینی که نوشتید درست اما یه مسئله هست اونم اینه که من دو تا کمبو باکس دارم یکی استان و یکی شهرهای اون استان (مثلن) خب ؟ حالا می خوام وقتی یک استان انتخاب شد شهرهای اون در کمبو باکس بعدی برای انتخاب دیده بشن . من جطور بفهمونم که این شهرها مال اون استان هستند ؟
آیا یه استان رو انتخاب کنم و بعد از نوشت کدهای بالا در SelectedIndexChanged کامبوباکس ، برم در کومبو باکس شهر ها ، شهر های اون رو بنویسم ؟
نه ! فکر کنم باید یه کار دیگه کرد که من نمی دونم . اگه می دونید توضیح بدید ممنون میشم

ali reza mansoori 2
جمعه 27 اردیبهشت 1392, 16:00 عصر
خوب فکر کنم شما جدول ها تون رو به صورت صحیح درست نکردید
شما یه جدول میخوای که نام استان و کد اون رو ذخیره کنه
یعد یه جدول دیگه برای شهرستان ها که کد استان و نام شهرستان رو ذخیره میکنی توش

حالا با کد نویسی کد استانی رو که انتخاب شده رو برمیداری و جدول دوم رو بر اساس اون فیلتر میکنی و در کمبو باکس دوم نمایش میدی

_behnam_
جمعه 27 اردیبهشت 1392, 16:00 عصر
سلام.
اول اینکه خودتون برچه اساسی میفهمید که این شهر واسه کدوم استادنه؟
باید اول توی دیتابیس شهرهای استان رو SELECT کنی حالا بر همون اساسی که ذخیره کردی. مثلا اگه توی تیبل شهرها یه ردیف گذاشتی که جلوی هرشهر استانشو بنویسه
مثلا استان بوشهر :
استان شهر
بوشهر بوشهر
خوب باید براساس ردیف استان بگردی و همه شهرهای که استانشون بوشهر است رو SELECT کنی و بعد توی کامبوباکس قرار دهی.
بلاخره باید یه شناسه داشته باشن که بشه پیداشون کرد.