PDA

View Full Version : سوال: مشکل در کد فیلتر کردن دیتابیس



vahidth
شنبه 09 دی 1391, 09:20 صبح
سلام
یه سوال درمورد جستجوی داشتم
من این کد و به این صورت نوشتم
SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id like @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1", "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;
وقتی برنامه اجرا میشه جستجو بدرستی انجام میشه ولی مثلا اگه در تکست باکس عدد1 و بنویسم و جستجو رو کلیک کنم رکوردهای 11 و 12 و13 14و ... رو هم میاره من میخوام فقط اون رکوردی رو که جستجو کردم فقط اون بیاد نه چیز دیگه

hashemi85sep
شنبه 09 دی 1391, 09:26 صبح
سلام
شما اومدین از like استفاده کردی
اگه میخوای دقیقا همونی که جستجو میکنی رو بهت نشون بده باید از = استفاده کنی.

vahidth
شنبه 09 دی 1391, 09:35 صبح
سلام
شما اومدین از like استفاده کردی
اگه میخوای دقیقا همونی که جستجو میکنی رو بهت نشون بده باید از = استفاده کنی.

SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id = @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1" , "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;


داداش like رو پاک کردم و بجاش مساوی قرار دادم ولی ارور میده

vahidth
شنبه 09 دی 1391, 10:09 صبح
و چطوری میتونم اطلاعات تاریخ رو که در دیتاگرید نمایش داده میشه رو درموقع اجرا فارسی نمایش بدم

group45
شنبه 09 دی 1391, 11:03 صبح
اگه نوع متغیرتون انواع چار باشه باید لایک بنویسید. اون دو تا درصد رو بردارید و با لایک دوباره تست کنید ببینید درست میشه

vahidth
شنبه 09 دی 1391, 11:23 صبح
از نوع int هست داداش

amirzandi
شنبه 09 دی 1391, 11:26 صبح
اگر از نوع int هست نمی تونی %% استفاده کنید...باید Convert کنین به NVARCHAR بعد مقایسه کنید.

vahidth
شنبه 09 دی 1391, 11:36 صبح
داداش یعنی اصلا راهی نداره که بتونم
جستجو رو جوری انجام بدم که فقط یک رکورد نمایش داده بشه

group45
شنبه 09 دی 1391, 11:42 صبح
از نوع int هست داداش

اگه int هست پس چرا لایک نوشتید؟ باید مساوی بزارید و در این صورت درصد هم اشتباه میشه.
به چه منظوری این جوری سرچ میکنید؟ آیا میخواید اعداد مشابه رو سرچ کنید؟

vahidth
شنبه 09 دی 1391, 11:55 صبح
بله کد رو میخوام سرچ کنم
داداش من کد رو اینجوری مینویسم ارور میده لطفا با کد بگید

SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id = @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1" , "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;

group45
شنبه 09 دی 1391, 12:11 عصر
بله کد رو میخوام سرچ کنم
داداش من کد رو اینجوری مینویسم ارور میده لطفا با کد بگید

SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id = @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1" , "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;

یه بار به جای آدرس دهی مقدارتون اونو استاتیک بنویسید مثلا id=45 ببینید هنوزم ارور میده؟

Mahmoud.Afrad
شنبه 09 دی 1391, 14:39 عصر
بله کد رو میخوام سرچ کنم
داداش من کد رو اینجوری مینویسم ارور میده لطفا با کد بگید

SqlDataAdapter da = new SqlDataAdapter(@"select * from zx WHERE id = @param1", con);
da.SelectCommand.Parameters.AddWithValue("@param1" , "%" + textBox9.Text + "%");
dt.Clear();
da.Fill(dt);
dataGridView1.DataSource = dt;
این خطو اصلاح کن:
da.SelectCommand.Parameters.AddWithValue("@param1", textBox9.Text);
توی امضای من نمونه جستجوی پیشرفته هست.

vahidth
شنبه 09 دی 1391, 15:54 عصر
ممنون ازت داداش چطوری میتونم فیلدهای که در دیتاگرید ذخیره میشن رو بصورت فارسی نمایش بدم
من فیلد تاریخ دارم که در دیتاگرید ذخیره شده به این صورت 1390/02/01 میخوام بصورت فارسی در دیتاگرید نمایش داده بشه