PDA

View Full Version : طریقه پر کردن DropDownList ؟



ali1112
دوشنبه 23 بهمن 1391, 19:20 عصر
سلام
لطفا یکی یه نمونه کد بذاره که چطوری با داده های یه جدول بانک میشه یه DropDownList رو پر کرد ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
اگه با معماری سه لایه هم نمونه کد نذاشتین لطفا لااقل نمونه کد معمولیشو بذارید
************************************************** *******************
چگونگی نمایش اطلاعات یک جدول در یک کامبو باکس در برنامه نویسی سه لایه؟؟؟؟؟؟؟
سلام دوستان،من دارم یه برنامه سه لایه مینویسم که در یه قسمتش میخوام فیلدای جدول
TblProp ام رو توی یه کامبو باکس با نام PropCombo نشون بدم اما زمان اجرا برنامه نه خطا بهم میده و نه فیلدای جدول رو داخل PropCombo نشون میده؟!
به نظرتون مشکل از کجاست، در ضمن من برای ایجاد یک عنصر در کامبو باکس میخواستم نوع اون عنصرمو از نوع ListItem تعریف کنم که این نوع وجود نداشت به همین دلیل مجبور شدم از نوع ListBox استفاده کنم،مشکل از کجاست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟
کدهای موجود در سه لایه رو هم در زیر گذاشتم.
در لایه نمایش:

PropData Pd = new PropData();
DataTable DT = PropComboShow1 ();
for (int i = 0; i < DT.Rows.Count; i++)
{
Int32 ID = Convert.ToInt32(DT.Rows[i][0].ToString());
string Name = DT.Rows[i][1].ToString();

ListBox list = new ListBox();
List.text = Name;
List.ValueMember = ID.ToString();

PropCombo.Items.Add(item);
}
************************************************** **
در لایه بی ال ال(لایه تجاری):

public DataTable PropComboShow1()
{
return PropComboShow2();
}
**************************************************
در لایه دل(لایه پایگاه داده)

protected DataTable PropComboShow2()
{
string str = "select IDHesab,Name from TblProp";
return ShowCombo3 (str);
}

khokhan
دوشنبه 23 بهمن 1391, 20:20 عصر
private void Form1_Load(object sender, EventArgs e)
{
using (SqlConnection objConnection = new SqlConnection(@" connection string "))
{
objConnection.Open();
string sql = "SELECT culomn FROM tabl";
SqlCommand cmd = new SqlCommand(sql, objConnection);

DataTable tbl = new DataTable();
tbl.Load(cmd.ExecuteReader());

tbl.Rows.Add(0, "Sub-categories");

DropDownList2.DataSource = tbl;
DropDownList2.DataTextField = "Name";
DropDownList2.DataValueField = "Id";
DropDownList2.DataBind();

objConnection.Close();
}
}

ali1112
دوشنبه 23 بهمن 1391, 23:42 عصر
private void Form1_Load(object sender, EventArgs e)
{
using (SqlConnection objConnection = new SqlConnection(@" connection string "))
{
objConnection.Open();
string sql = "SELECT culomn FROM tabl";
SqlCommand cmd = new SqlCommand(sql, objConnection);

DataTable tbl = new DataTable();
tbl.Load(cmd.ExecuteReader());

tbl.Rows.Add(0, "Sub-categories");

DropDownList2.DataSource = tbl;
DropDownList2.DataTextField = "Name";
DropDownList2.DataValueField = "Id";
DropDownList2.DataBind();

objConnection.Close();
}
}


سلام دوست عزیزم ممنون که همیشه لطف میکنی و جواب سوالاتمو میدی
لطفا اگه میدونی میشه بصورت سه لایه تکه کدی بذاری
با تشکر

khokhan
سه شنبه 24 بهمن 1391, 00:49 صبح
1 . در قسمت dal یه کلاس با خروجی Datatable ایجاد می کنی


Public Class DataAccess
{
public Datatble GetDate()
{
Datatble dt = new Datatble();

SqlConnection sqlConn = new SqlConnection("ABC");

string CMD = "SELECT * FROM TABLE1";
SqlDataAdapter da = new SqlDataAdapter(CMD, sqlConn);
da.Fill(dt);

return dt;
}
}


2 . فانکشن بعدی رو در bll ایجاد می کنی با خروجی Datatable


Using DAL;

Public Class BusinessAceess
{
public Datatable FetchData()
{
DataAccess objDataAccess=new DataAccess();
Datatble dt=objDataAccess.GetData();
}
}


3 . در لایه ارائه یعنی جایی که کمبو رو قرار دادی می نویسی



Private void BindCombobox()
{

BusinessAceess objBAL=new BusinessAceess();

cmb.AutoCompleteSource = AutoCompleteSource.ListItems;
cmb.DropDownStyle = ComboBoxStyle.DropDownList;

cmb.DataSource = dt;
cmb.DisplayMember ="Text";
cmb.ValueMember = "Value"
}

ali1112
سه شنبه 24 بهمن 1391, 14:38 عصر
سلام دوست عزیزم ممنون که همیشه لطف میکنی و جواب سوالاتمو میدی
لطفا اگه میدونی میشه بصورت سه لایه تکه کدی بذاری
با تشکر

ببخشید من مشکلم اینه که میخوام خودم با کدنویسی تک تک آیتم ها رو به کامبو باکس اضافه کنم در Asp.net خودم بلدم که این کدشه

ListItem item = new ListItem ();
item.Text = “Text”
item.Value = “ID”;

DropDownList1.Items.Add(item);


اما در سی شارپ نمیدونم دوستان، من فقط سوالم اینه که معادل نوع داده ListItem که داخل Asp.net به اینصورته در C#‎ چیه؟؟؟؟؟؟؟؟؟؟؟
خیلی واجبه

daneshjo90
پنج شنبه 26 بهمن 1391, 02:00 صبح
از قطعه کد زیر استفاده کن شاید به دردت خورد

comboBoxEx1.Items.Add("saeed");

و همینطور ادامه بده

موفق باشی

ali1112
پنج شنبه 26 بهمن 1391, 14:45 عصر
از قطعه کد زیر استفاده کن شاید به دردت خورد

comboBoxEx1.Items.Add("saeed");

و همینطور ادامه بده

موفق باشی

ممنون دوست عزیز از پاسخگوییتون.
اما در این روشی که شما گفتین فقط رشته به کامبو اضافه میشه،در صورتی که مقدر Valueاش هم باید اضافه بشه چون بعدا این Value برای تشخیص اینکه کاربر کدوم آیتم رو انتخاب کرده لازم میشه!!!!!!!

Mahmoud.Afrad
پنج شنبه 26 بهمن 1391, 15:57 عصر
ممنون دوست عزیز از پاسخگوییتون.
اما در این روشی که شما گفتین فقط رشته به کامبو اضافه میشه،در صورتی که مقدر Valueاش هم باید اضافه بشه چون بعدا این Value برای تشخیص اینکه کاربر کدوم آیتم رو انتخاب کرده لازم میشه!!!!!!!
value فقط از طریق بایند کردن قابل مقداردهی هست. راهی جز استفاده از دیتاسورس نمیمونه.