PDA

View Full Version : نحوه نوشتن کوئری جستجو با استفاده از پارامتر



vahidth
دوشنبه 04 دی 1391, 09:11 صبح
سلام
چطوری میتونم این کوئری جستجو رو با استفاده از پارامتر در سی شارپ بنویسم
SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id like N'%" + textBox6.Text + "%'", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;

vahidth
دوشنبه 04 دی 1391, 13:55 عصر
با استفاده از پارامتر نوشتم ولی یه مشکلی که هست اینه که
مثلا وقتی برنامه رو اجرا میکنم و کد مثلا 15 رو جستجو میکنم میاره ولی اگه بخوام مثلا کد 14 رو هم جستجو کنم کد 14 و 15 رو باهم میاره چیکار کنم که هر بار جستجو میکنم فقط یک فیلد جستجو بیاد؟
97173

در ضمن من با استفاده از یه کامبوباکس این کارو انجام میدم عمل جستجو با کد رو درست انجام میده ولی وقتی از کامبوباکس name رو انتخاب میکنم و جستجو میکنم چیزی نماید اینم از کدها
if (comboBox1.Text == "کد")
{
SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id like @param2", con);
da.SelectCommand.Parameters.AddWithValue("@param2", "%" + textBox9.Text + "%");
da.Fill(dt);
dataGridView1.DataSource = dt;
}
else if (comboBox1.Text == "نام")
{
SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE name like @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1", "%" + textBox9.Text + "%");
da.Fill(dt);
dataGridView1.DataSource = dt;
}

veniz2008
دوشنبه 04 دی 1391, 15:53 عصر
با استفاده از پارامتر نوشتم ولی یه مشکلی که هست اینه که
مثلا وقتی برنامه رو اجرا میکنم و کد مثلا 15 رو جستجو میکنم میاره ولی اگه بخوام مثلا کد 14 رو هم جستجو کنم کد 14 و 15 رو باهم میاره چیکار کنم که هر بار جستجو میکنم فقط یک فیلد جستجو بیاد؟
سلام. دلیلش اینه که مقدار قبلی همچنان در دیتاتیبل وجود داره. قبل از اینکه دیتاتیبل رو پر کنید اول اونو clear کنید. بصورت زیر :

if (comboBox1.Text == "کد")
{
SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id like @param2", con);
da.SelectCommand.Parameters.AddWithValue("@param2" , "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
else if (comboBox1.Text == "نام")
{
SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE name like @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1" , "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;
}

vahidth
دوشنبه 04 دی 1391, 16:14 عصر
ممنون داداش وقتی از کامبوباکس کد رو انتخاب میکنم جستجو به درستی انجام میشه ولی وقتی از کامبوباکس نام رو انتخاب میکنم و جستجو میکنم چیزی نشون نمیده
else if (comboBox1.Text == "نام")
{
SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE name like @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1", "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;