PDA

View Full Version : پر کردن کمبو باکس



hamid.kurd
دوشنبه 12 خرداد 1393, 01:38 صبح
با سلام
کمبوباکس رو با مقادیر مورد نظر از جدول پر کردم حالا اگر بخوام مقدار id متناظر با هر انتخابم رو که کلید هستش توی دیتابیسم درج کنم چکار باید بکنم.

comboBoxEx4.DataSource = dsteach.Tables[0];
comboBoxEx4.DisplayMember = "tname";
comboBoxEx4.ValueMember = "tid";

kavayo
دوشنبه 12 خرداد 1393, 09:20 صبح
به این صورت ابتدا مقدار انتخاب شده را بگیر و سپس در دیتابیس ثبت کن :



;string id=comboBox4.SelectedValue

hamid.kurd
سه شنبه 13 خرداد 1393, 10:07 صبح
به این صورت ابتدا مقدار انتخاب شده را بگیر و سپس در دیتابیس ثبت کن :



;string id=comboBox4.SelectedValue


این کار رو هم کردم اما فقط مقدار رو برابر tid قرار می ده.

fakhravari
سه شنبه 13 خرداد 1393, 10:52 صبح
comboBoxEx4.index = 0 بزار

hamid.kurd
سه شنبه 13 خرداد 1393, 11:18 صبح
comboBoxEx4.index = 0 بزار

اگر در سی شارپ منظورتون comboBoxEx4.SelectedIndex = 0; قرار دادم ولی نشد.

hamid.kurd
سه شنبه 13 خرداد 1393, 11:29 صبح
یه کمبوباکس دارم که توی اون اسم معلم ها رو قرار می دم حالا می خوام ID متناظر با هر اسم رو به عنوان کلید خارجی در دیتابیس ثبت کنم این کدی هستش که استفاده کردم. مقدار نام رو در کمبوباکس نشون می ده اما برای مقدار متناظر id فقط اسم جدول رو می نویسه.
public DataSet Loadteach()
{

dsteach.Clear();
cmd1.CommandText = "select * from teach";
cmd1.Connection = con;
dat.SelectCommand = cmd1;
con.Open();
dat.Fill(dsteach, "teach");
con.Close();
cmd1.Parameters.Clear();
return dsteach;
}


public void iudteach(OleDbCommand cmd)
{
cmd1.Connection = con;
con.Open();
dat.SelectCommand = cmd1;
dsteach.Clear();
cmd1.ExecuteNonQuery();
con.Close();
dat.Update(dsteach, "teach");
Loadteach();
cmd1.Dispose();
}

private void Refteach()
{
try
{

Loadteach();
//dgwt.DataSource = dsteach;
//dgwt.DataMember = "teach";
// comboBoxEx4.DisplayMember = "tname";


comboBoxEx4.DataSource = dsteach.Tables[0];
comboBoxEx4.DisplayMember = "tname";
comboBoxEx4.ValueMember = "tid";

comboBoxEx4.SelectedIndex = 0;
MessageBox.Show(comboBoxEx4.ValueMember.ToString() );

}

behnam-soft
سه شنبه 13 خرداد 1393, 20:14 عصر
خب معلومه که باید همون tid رو هم نشونه بده دوست من! چون کدی که نوشتی اشتباهه !
شما عملا داری میگی comboBoxEx4.ValueMember من رو فقط برابر "tid" قرار بده!در صورتی که حتما بایدبرابر یه ستون از جدولت باشه.
یه نمونه کد برات میذارم،از این کد استفاده کن ببین مشکلت حل میشه ؟

comboBoxEx4.ValueMember=dt.Columns["tid"]
البته من این کد رو همینجا نوشتم شاید از لحاظ سینتکس خطا داشته باشه.
موفق باشی.

hamid.kurd
چهارشنبه 14 خرداد 1393, 10:47 صبح
خب معلومه که باید همون tid رو هم نشونه بده دوست من! چون کدی که نوشتی اشتباهه !
شما عملا داری میگی comboBoxEx4.ValueMember من رو فقط برابر "tid" قرار بده!در صورتی که حتما بایدبرابر یه ستون از جدولت باشه.
یه نمونه کد برات میذارم،از این کد استفاده کن ببین مشکلت حل میشه ؟

comboBoxEx4.ValueMember=dt.Columns["tid"]
البته من این کد رو همینجا نوشتم شاید از لحاظ سینتکس خطا داشته باشه.
موفق باشی.

برای comboBoxEx4.ValueMember پراپرتی با این مقدار وجود نداره.
شما دیتااداپتر رو رو با یک جدول پر کردید اما متاسفانه درست نیست.