PDA

View Full Version : ریختن محتوی جدول در combo



behrad110
یک شنبه 27 اردیبهشت 1388, 21:39 عصر
با چه کدی میتونم محتوی دو تا جدول رو به دو تا combo box که در یک فرم قرار داره بریزم یعنی هرکدوم از combo ها مقادیرشون رو از یک جدول میگیرن

Reza_Yarahmadi
دوشنبه 28 اردیبهشت 1388, 00:31 صبح
محتوی یه جدول رو نمیشه توی کمبو بریزی بلکه محتوای یک فیلد از جدول رو میتونی توی کمبو باکس بریزی.


SqlConnection Con = new SqlConnection("ConnectionString");
SqlDataAdapter DA = new SqlDataAdapter("SqlString", Con);
DataSet Ds=new DataSet();
DA.Fill(Ds, "T1");
comboBox1.DataBindings.Add("Text",Ds,"T1.FieldName");

behrad110
دوشنبه 28 اردیبهشت 1388, 01:03 صبح
منظورم محتوی یه ستون بود .یه فیلد که فایده نداره میخوام مثلا تما م خریدار ها توی یک کمبو نشون داده بشن . با روشی که شما گفتید. جواب نگرفتم

shahab_ss
دوشنبه 28 اردیبهشت 1388, 01:32 صبح
public bool fillcmb(ComboBox cmb)
{
try
{
MyDbConnection.Open();
m_daDataAdapter = new OleDbDataAdapter("SELECT T1.ID, T1.fullname FROM T1;",MyDbConnection);
DataSet ds = new DataSet();
m_daDataAdapter.Fill(ds, "T1");
DataView dv = ds.Tables["T1"].DefaultView;
cmb.DataSource = dv;
dv.Sort = "fullname";
cmb.DisplayMember = "fullname";
cmb.ValueMember = "ID";
MyDbConnection.Close();
return true;
}
catch( OleDbException exp )
{
string strError = exp.Message;
MessageBox.Show( this, strError, "Exception thrown" );
return false;
}
}

pesar irooni
دوشنبه 28 اردیبهشت 1388, 01:41 صبح
ابتدا dataSource کمبوباکس رو یه چیزی (مثلا همون جدولی که یه فیلدش رو میخوای) قرار میدی.
بعد هم مقدار DisplayMember اون رو نام فیلد یا همون ستونت قرار میدی.

DataTable dt = Mydatatable;
ComboBox1.DataSource = dt;
ComboBox1.DisplayMember = "MyColumn";

behrad110
دوشنبه 28 اردیبهشت 1388, 09:39 صبح
public bool fillcmb(ComboBox cmb)
{
try
{
MyDbConnection.Open();
m_daDataAdapter = new OleDbDataAdapter("SELECT T1.ID, T1.fullname FROM T1;",MyDbConnection);
DataSet ds = new DataSet();
m_daDataAdapter.Fill(ds, "T1");
DataView dv = ds.Tables["T1"].DefaultView;
cmb.DataSource = dv;
dv.Sort = "fullname";
cmb.DisplayMember = "fullname";
cmb.ValueMember = "ID";
MyDbConnection.Close();
return true;
}
catch( OleDbException exp )
{
string strError = exp.Message;
MessageBox.Show( this, strError, "Exception thrown" );
return false;
}
}


آقا شهاب دمت گرم
فقط این مقدار true که بر میگردونه واسه چیه؟ در مورد dataview هم توضیح میدی کارش چیه؟

shahab_ss
دوشنبه 28 اردیبهشت 1388, 09:46 صبح
مقدار Bool مشخص میکنه که آیا بعد از fill شدن مقداری وجود داشته ؟
اگر هیچ آیتمی موجود نباشه False برمیگردونه.

و اما DataView ، از اون برای sort کردن استفاده کردم همین.:لبخندساده:

behrad110
دوشنبه 28 اردیبهشت 1388, 09:51 صبح
یعنی اگه نخوایم sort داشته باشیم میتونیم حذفش کنیمdataview?

shahab_ss
دوشنبه 28 اردیبهشت 1388, 09:55 صبح
بله،میتونید حذف کنید.


گر هیچ آیتمی موجود نباشه False برمیگردونه.
اصلاح میکنم،اگر در حین fill شدن مشکلی پیش بیاد False برمیگردونه و در غیر اینصورت True.

behrad110
دوشنبه 28 اردیبهشت 1388, 10:29 صبح
آقا دمت گرم کدی که دادی جواب داد :تشویق:حالا اگه بخوام وقتی تو کمبو باکس اول یه نام رو انتخاب کردم توی کمبوی دوم خود به خود id مرتبط با اون نام انتخاب بشه باید چی کار کنم

shahab_ss
دوشنبه 28 اردیبهشت 1388, 10:44 صبح
چیزی شبیه به این کد رو باید در رویداد SelectedIndexChanged در کمبوی دوم قرار بدی.

comboBox1.SelectedIndex = comboBox2.FindString(comboBox1.SelectedText);

z_rezaie
پنج شنبه 08 مرداد 1388, 20:56 عصر
سوال من تقریبا شبیه سوال دوستمون behrad110 هست
با این تفاوت که قرار نیست کد نویسی کنم!!
به صورت ویزادی یعنی با خاصیتهای selected value,selected items کومبو میشه همچین کاری انجام داد؟؟؟؟؟؟؟؟
در
selected itemsد را اسم کالا رو بنویسه کاربر هرکدام را که انتخاب کرد id انرا در textbox بنویسه
تو php میشد با این دوتا خاصیت این کارو کرد!!!