PDA

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



veniz2008
یک شنبه 07 فروردین 1390, 17:47 عصر
سلام،میخوام که مشخصات افراد یک جدول رو براساس نام اونها فیلتر کنم و در یک gridview نشون بدم،وقتی همه رکوردها رو میزنم،همه رو داخل گریدویو نشون میده ولی وقتی از کد زیر استفاده میکنم،گریدویو هیچی رو نمایش نمیده،مشکل کد زیر چیه؟(نام رو از نوع nvarchar در نظر گرفتم)

SqlDataAdapter da = new SqlDataAdapter("select * from student where name='"+textBox2.Text+"'",conn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.Refresh();

mehdi.mousavi
یک شنبه 07 فروردین 1390, 18:29 عصر
سلام.
می تونید بدین شکل عمل کنید:

SqlDataAdapter da = new SqlDataAdapter("select * from student where name=N'" + textBox2.Text + "'",conn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();

تذکر: اینطور ترکیب کردن کدهای DAL با UI کار صحیحی نیستش و منجر به تشکیل spaghetti code میشه. به همین ترتیب، استفاده از Dynamic SQL ih بسیار خطرناک هستش، چرا که کد رو در برابر تهاجم افراد بدخواه، آسیب پذیر میکنه. به جای استفاده از Dynamic SQL حتما از Parametric Command ها در ADO.NET استفاده کنید.

موفق باشید.

harash
پنج شنبه 21 خرداد 1394, 19:46 عصر
سلام
حالا اگر بخواهیم همین مورد را با پارامتر انجام دهیم و like چطور میشه؟

SqlDataAdapter da = new SqlDataAdapter("select * from student where name like'%" @tex1"%'",conn);
cm.Parameters.Add("@tex1",txtsname.Text.Trim)
DataTable dt = new DataTable();

da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();



میشه بگید این کد چطور میشه اگه ممکنه توی وی بی ممنونم