PDA

View Full Version : سوال: همگام سازی دو لیست باکس



MS.Worm
یک شنبه 28 اسفند 1390, 22:49 عصر
سلام و خسته نباشید
در فرم دوتا لیست باکس دارم که هردو به یک جدول در پایگاه داده متصل شدند. ولی هر کدام به یک فیلد.
لیست اول به فیلد کد و لیست دوم به فیلد نام وصل شدند.
حالا میخوام بدونم چطوری میشه وقتی در لیست اول روی کدی کلیک میکنیم، نام مربوط به اون کد در لیست دوم انتخاب بشه؟
با تشکر

ztx4
دوشنبه 29 اسفند 1390, 12:44 عصر
اینم یک نمونه کد برای شما:


private void Form1_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "server=.;database=*****;uid=*****;pwd=*****";
string query = "Select * from ePerson";
SqlDataAdapter adp = new SqlDataAdapter(query,con);
DataSet dst = new System.Data.DataSet();
adp.Fill(dst);


listBox1.ValueMember = "ePersonId";
listBox1.DisplayMember = "FirstName";

listBox2.ValueMember = "ePersonId";
listBox2.DisplayMember = "LastName";

listBox1.DataSource = dst.Tables[0];
listBox2.DataSource = dst.Tables[0];
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listBox2.SelectedValue= listBox1.SelectedValue;
}


به این دو خط بسیار توجه داشته باشید:

listBox1.ValueMember = "ePersonId"; listBox1.DisplayMember = "FirstName";



خط اول مشخص کننده ی فیلد کلیدی جدول شماست.
و دومی مشخص کننده ی فیلدی که می خواهید نمایش داده بشه.

فرق بین SelectedIndex و SelectedValue اینه که اولی ایندکس خود لیست باکسه و همیشه از صفر شروع می شه و به اضای هر آیتم یکی افزایش پیدا می کنه.
اما دومی آیدی یا همون فیلد کیلیدی آیتم شما در جدول DataBase هست و هیچ ارتباطی با محل قرار گیری آیتم در لیست باکس نداره.