PDA

View Full Version : نمایش یک فیلد در کمبوباکس با ef



programerinfonet
دوشنبه 11 فروردین 1393, 10:27 صبح
سلام دوستان من دو تا فیلد دارم
name
id
میخوام تمام نام ها در کمبوباکس نمایش داده بشه و با انتخاب هر نام کد آن در لیبل نمایش داده بشه
البته با ef
کمک کنید
ممنون

khokhan
دوشنبه 11 فروردین 1393, 11:26 صبح
سلام دوستان من دو تا فیلد دارم
name
id
میخوام تمام نام ها در کمبوباکس نمایش داده بشه و با انتخاب هر نام کد آن در لیبل نمایش داده بشه
البته با ef
کمک کنید
ممنون
فیلد نام رو به DisplayMember کمبوباکس اختصاص بده و فیلد ID رو به ValueMember کمبو باکس قرار بده :

var query = from q in db.zirna
select new{q.id, q.p_name,q.p_lname };
comboBox1.DataSource = query.ToList();
comboBox1.DisplayMember = "p_lname";
comboBox1.ValueMember = "id";


بعد در رویداد SelectedIndexChanged کمبو باکس یه کوئری دیگه براساس مقدار کمبو بزن و بریز توی لیبل اینطوری :


private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var query = db.zirna.Where(c => c.p_lname == comboBox1.Text).ToList();
foreach(var item in query)
{
label2.Text = item.id.ToString();
}
}

r4hgozar
دوشنبه 11 فروردین 1393, 11:27 صبح
سلام. اگه درست متوجه شده باشم.
این کد اتصال یک فیلد به combobax



dbTestEntities2 db = new dbTestEntities2();
dataGridView1.DataSource = db.SPselect_tbl_Amanat();
comboBox1.DataSource = db.tbl_Book.ToList();
comboBox1.DisplayMember = "name";



بعد هم باید در



private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
MessageBox.Show(comboBox1.Text);
}



جای مسیج باکس باید کوئری رو ادد کنی. اونم بصورت زیره




var query = from c in db.tbl_Amanat.ToList()
where c.name == comboBox1.Text
select c;






بعد هم فقط bind میکنی فیلدت رو