View Full Version : query dropdown list
mahtab13
یک شنبه 01 مرداد 1391, 18:26 عصر
سلام خسته نباشید
دوستان من در پروژم یه جستجو کتاب دارم ، این جستجو می تونه بر اساس نام کتاب ، نوسینده و موضوع باشه
می خوام کاربر یکی از موارد گفته شده رو از طریق dropdown list انتخاب کنه و در یک textbox مقدار مورد نظر رو بنویسه
چطور شرط خودم رو قرار بدم ؟ یعنی چطور بگم حالا باید کدام فیلد رو مورد جستجو قرار بده
با تشکر از رهنمایتون
Sirwan Afifi
یک شنبه 01 مرداد 1391, 22:52 عصر
دستور SQLتون رو به این شکل برای Search تغییر بدید،نیازی به if نداره :
"Select *from Book Where "+ComboBox1.SelectedValue.ToString()....
mahtab13
دوشنبه 02 مرداد 1391, 00:03 صبح
سلام ممنون که جواب دادین
اما منظور من این بود اگه کاربر از dropdown list نام کتاب رو انتخاب کرد ، در texbox نام کتاب رو بنویسه و جستجو رو بر اساس نام کتاب انجام بده ، اگه نویسنده زد برا اساس نویسنده و همینطور تا اخر
اما اینطور که شما نوشتید که میشه جستجو برا اساس اطلاعات dropdown list
؟
ممنون از راهنمایتون
Y_Safaiee
دوشنبه 02 مرداد 1391, 00:45 صبح
با سلام خدمت شما دوست گرامی
در ابتدا بگم این روش قدیمی شده و من یادمه وقتی 15سالم بود(الان 24 سالمه) از این روش استفاده میشد الان روشهای پویاتر و زیباتری هست که دست کاربرو باز میذاره و نیازی نیست کاربر برای هر مدل جستجوش فیلدشو انتخاب کنه.
cmd.CommandText = "select * from table1 where " + comboBox1.Text + " like '" + textBox2.Text + "%'";
اینجا اول کاربر باید از کمبوباکس بگه کدوم فیلد(مثلا نام,شماره دانشجویی,شهر) بعد با نوشتن متنش تو textbox روی اون فیلد فیلتر میشه,مثلا اگه شهر رو انتخاب کنه با زدن حرف م همه شهرهایی که اولش م هست میاد,اگه از کمبوباکس نام رو انتخاب کنه و ی رو بنویسه کل اسم هایی که اولش ی هست میاد
برای نمایش دادن فیلدی که انتخاب شده هم کلی راه هست مثلا اینطوری :
switch (comboBox1.SelectedIndex)
{
case 0:
label1.Text = "بر حسب نام";
break;
case 1:
label1.Text = "بر حسب کد ملی";
break;
}
موفق باشین
بایت بایت
Sirwan Afifi
دوشنبه 02 مرداد 1391, 01:17 صبح
در ابتدا بگم این روش قدیمی شده و من یادمه وقتی 15سالم بود(الان 24 سالمه) از این روش استفاده میشد الان روشهای پویاتر و زیباتری هست که دست کاربرو باز میذاره و نیازی نیست کاربر برای هر مدل جستجوش فیلدشو انتخاب کنه.
این از اون روش های پویاست :
ابتدا شما باید یه کلاس تعریع کنید که شامل 2 پراپرتی Text و Value باشه و سپس باید متد ToStringش رو به صورت زیر Override کنید تا Textی که شما می خواید رو برگردونه به این صورت :
public class ComboBoxItem
{
public string Text { get; set; }
public object Value { get; set; }
public override string ToString()
{
return Text;
}
}
و به این صورت از کلاس فوق می تونی استفاده کنی :
ComboBoxItem item = new ComboBoxItem();
item.Text = "نام نویسنده";
item.Value = "author";
comboBox1.Items.Add(item);
و به این صورت می تونید عمل Search رو براساس فیلد انتخاب شده از دیتاگرید انجام بدید :
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=ekbatantech;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select * from Books where " + (comboBox1.SelectedItem as ComboBoxItem).Value.ToString() + " = '" + textBox2.Text + "'", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
موفق باشید.
Sirwan Afifi
دوشنبه 02 مرداد 1391, 01:19 صبح
در ضمن با یه سرچ کوچیک می تونستید پاسخ رو پیدا کنید(+ (http://stackoverflow.com/questions/3063320/combobox-adding-text-and-value-to-an-item-no-binding-source))
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.