View Full Version : فیلترِ datagridview توسط comboBox
negar222
پنج شنبه 25 شهریور 1395, 17:01 عصر
سلام
من برای فیلتر کردن datagriview توسط id تکس موجود در comboBox کد زیر رو نوشتم ولی خطا میده..
ممنون میشم راهنماییم کنید..
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
dataGridView1.DataSource = string.Format("SELECT * FROM tbl_kala WHERE catid=comboBox1.SelectedValue");
}
mrprestige
پنج شنبه 25 شهریور 1395, 20:31 عصر
عرض سلام و ادب ، در وحله اول شما اشتباهی که کردید اینه که دستور comboBox1.SelectedValue رو داخل دابل کوتیشن قراردادید و و هرچی که داخل دابل کوتیشن قرار بگیره کامپایلر اون رو به عنوان رشته در نظر میگیره باید دستور رو به این شکل تغییر بدید
dataGridView1.DataSource = string.Format("SELECT * FROM tbl_kala WHERE catid="+comboBox1.SelectedValue);
اگه باز در این قسمت به مشکل برخوردید بفرمایید بنده و باقی دوستان پاسخگو هستیم .
پیروز و موفق باشید.
negar222
پنج شنبه 25 شهریور 1395, 22:23 عصر
عرض سلام و ادب ، در وحله اول شما اشتباهی که کردید اینه که دستور comboBox1.SelectedValue رو داخل دابل کوتیشن قراردادید و و هرچی که داخل دابل کوتیشن قرار بگیره کامپایلر اون رو به عنوان رشته در نظر میگیره باید دستور رو به این شکل تغییر بدید
dataGridView1.DataSource = string.Format("SELECT * FROM tbl_kala WHERE catid="+comboBox1.SelectedValue);
اگه باز در این قسمت به مشکل برخوردید بفرمایید بنده و باقی دوستان پاسخگو هستیم .
پیروز و موفق باشید.
ممنون از راهنماییتون.. متأسفانه این کد جواب نداد..
از راهی دیگه به جواب رسیدم..
mrprestige
پنج شنبه 25 شهریور 1395, 23:05 عصر
خواهش میکنم ، کاش اون راهی که رفتید رو هم توی پست تون میزاشتید تا بقیه دوستانی که به این مشکل برخودند راحت تر به جواب برسن از این طریق کمکشون کرده باشید . خب با این حال بنده کدی که برای شما نوشتم به این صورت هست اول داخل کلاس Form این رو مینویسیم
DataTable dt;
سپس داخل رویداد SelectedIndexChanged اینو بنویسید
DataView dv = dt.DefaultView;
dv.RowFilter = string.Format("catid LIKE '%{0}%'", comboBox1.SelectedItem.ToString().Trim());
dataGridView1.DataSource = dv;
پیروز و موفق باشید
negar222
جمعه 26 شهریور 1395, 00:48 صبح
خواهش میکنم ، کاش اون راهی که رفتید رو هم توی پست تون میزاشتید تا بقیه دوستانی که به این مشکل برخودند راحت تر به جواب برسن از این طریق کمکشون کرده باشید . خب با این حال بنده کدی که برای شما نوشتم به این صورت هست اول داخل کلاس Form این رو مینویسیم
DataTable dt;
سپس داخل رویداد SelectedIndexChanged اینو بنویسید
DataView dv = dt.DefaultView;
dv.RowFilter = string.Format("catid LIKE '%{0}%'", comboBox1.SelectedItem.ToString().Trim());
dataGridView1.DataSource = dv;
پیروز و موفق باشید
بله حتماً..
ممنونم از راهنماییتون ولی این کد رو امتحان کردم باز نمیدونم چرا نتیجه نداد...
من از این راه رفتم : داخل dataset توی tabelAdapter مربوط به جدول این کد رو نوشتم:
SELECT *
FROM tbl_kala
WHERE (catid = @id)
و بعد :
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
tbl_kalaTableAdapter.FillByComboBox(dataSet1.tbl_k ala, comboBox1.SelectedIndex + 1).ToString();
}
موفق باشید..
mrprestige
جمعه 26 شهریور 1395, 01:11 صبح
بازم خواهش میکنم ... بله به این خاطر نتیجه نداده چون شما داخل Form_Load این کد رو ننوشتید (بنده این ها رو نگفتم چون فکر کردم این هارو از قبل نوشتید )
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from Tablename", cn);
dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
cn.Close();
cn منظور همون اسم متغییر SQLConnection هست و بعد از این هم همون روال که در پست قبل عرض کردم .
پیروز و موفق باشید.
hamid59022
سه شنبه 13 مهر 1395, 11:40 صبح
سلام فکر کنم یکم دیگه باید کاماند استرینگ رو تغییر بدین
"select * from tbl_kala where catid='"+combobox1.text+"'"
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.