PDA

View Full Version : مشکل سرچ در دیتابیس



h.alizadeh
جمعه 13 دی 1387, 20:37 عصر
سلام،

من در پروژه م میخوام که در تکست باکس یک متن بنویسم بعد وقتی متن رونوشتم براساس متن نوشته شده در این تکست باکس جستجو انجام بشه.
مثلا اگه در تکست باکس نوشته بود "زمان"
همه ی رکوردایی که در فیلد subjectشون کلمه ی زمان وجودداره نمایش داده شه یعنی رکوردایی مثل "اعلام زمان نتایج" .... هم نشون داده شه.

من یک بار اومدم ویژوالی این کار رو انجام دادم رفتم واسه Dataset ام یک تابع نوشتم (یعنی در محیط studentsDataSet1.xsd)

اینطوری:


SELECT sid, subject, note, createDate, startDate, endDate
FROM names
WHERE (subject LIKE '%' + @subject + '%')


بعد که دکمه ی Excute رو در همون کادرQuery Builder میزنم و مینویسم "زمان" کار میکنه و تمامی رکوردایی که در اون فیلد subject شون کلمه ی زمان وجود داره رو نشون میده مثلا "اعلام زمان نتایج" رو هم نشون میده

ولی وقتی توی خود برنامه که اینطوری مینویسم:



namesTableAdapter.FillBySubject(studentsDataSet2.n ames, textBox1.Text.Trim() );

برنامه رو اجرا میکنم فقط رکوردایی رو برمیگردونه که دقیقا subject شون "زمان" باشه!

ولی من میخوام که مثلا "زمان اعلام نتایج" رو هم نشون بده...

به نظرتون مشکل از چیه؟ چرا موقع excute در کادر کوئری بلدر کار میکنه ولی در اجرای برنامه کار نمیکنه؟!!!


یک بار م اومدم دستی کد نوشتم اینجوری:




da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = objCon;
da.SelectCommand.CommandText =
"SELECT * from names WHERE subject LIKE '%@subject%'";
da.SelectCommand.Parameters.AddWithValue("@subject",textBox1.Text );
da.SelectCommand.CommandType = CommandType.Text;
objCon.Open();
da.Fill(ds, "names");
objCon.Close();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "names";


da = null;
objCon = null;


ولی اینجوری که نوشتم حتی رکوردایی که دقیقا برابر کلمه ی "زمان" هست رو هم برنمیگردونه یعنی هیچی رو بر نمیگردونه...


لطفاً راهنمایی می کنید.


تشکر