PDA

View Full Version : سوال: راهنمایی در مورد جستجو بر اساس 5 فیلد از دیتابیس به دلخواه کاربر



mrmohsen
دوشنبه 20 دی 1389, 19:00 عصر
با سلام خدمت تمامی عزیزان و زحمتکشان برنامه نویس دات او آرجی

دوستان من دنبال این مطلب گشتم وتاپیکی هایی پیدا کردم و تا حدودی کمکم کردند و کد نهایی را به این صورت برای نیازم پیاده کردم ولی متاسفانه از قسمت And مشکل می گیره اگه راهنمایی کنید ممنون میشم.

Error:Incorrect syntax near the keyword 'AND'.


try
{
SqlConnection _Con=new SqlConnection ();
string cs = WebConfigurationManager.ConnectionStrings["BSH"].ConnectionString;
_Con.ConnectionString = cs;
_Con.Open();
System.Data.SqlClient.SqlCommand SqlCommand = new System.Data.SqlClient.SqlCommand();
SqlCommand.Connection =_Con ;
SqlCommand.CommandType = CommandType.Text;
SqlCommand.CommandText = "SELECT TBook.*, TPublisher.PublisherName FROM TBook INNER JOIN TPublisher ON TBook.PublisherID = TPublisher.PublisherID WHERE ";
if (this.txtname.Text.Trim().Length != 0)
SqlCommand.CommandText += "BookName LIKE(N'" + this.txtname.Text.Trim() + "%') ";


if (this.txtkeyword.Text.Trim().Length != 0)
SqlCommand.CommandText += "or Keys LIKE(N'" + this.txtkeyword.Text.Trim() + "%') ";

if (this.txtauthor.Text.Trim().Length != 0)
SqlCommand.CommandText += "or Author LIKE(N'" + this.txtauthor.Text.Trim() + "%') ";


if (this.txtisbn .Text.Trim().Length != 0)
SqlCommand.CommandText += "or ISBN LIKE(N'" + this.txtisbn.Text.Trim() + "%') ";

if (this.txtpublisher .Text.Trim().Length != 0)
SqlCommand.CommandText += "AND PublisherName LIKE(N'" + this.txtpublisher .Text.Trim() + "%') ";

DataTable dataTable = new DataTable();
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
sqlDataAdapter.SelectCommand = SqlCommand;
sqlDataAdapter.Fill(dataTable);
this.DataList1 .DataSource = dataTable;
DataList1.DataBind();

}
catch (System.Exception exp)
{
lblerror.Visible = true;
lblerror.Text =exp.Message ;

}
دوستان اگه رفع مشکل کنن ممنون میشم اگه متدی جدید داشتن ارائه کنن بسیار ممنون میشم

aslan
سه شنبه 21 دی 1389, 17:01 عصر
سلام
Database را ميتوني اينجا بزاري ؟

يك پيشنهاد :

يك متغير string تعريف كنيد و با كنترل خالي نبودن تكست باكسها متغير تعريف شده را كامل كنيد و در آخر كنتزل كنيد و در صورت خالي نيودن متغير تعريف شده آنرا به انتهاي Query مورد نظر اضافه كنيد و ..........

mohsen_zelzela00
سه شنبه 21 دی 1389, 17:16 عصر
با سلام
دوست عزیز می تونید از این مقاله (http://30sharp.com/article/13/252/11/%D8%AA%DA%A9%D9%86%DB%8C%DA%A9%DB%8C-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%D8%B3%D8%A7%D8%AF%D9%87-%D9%88-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C-%D9%BE%D9%88%DB%8C%D8%A7.aspx) استفاده کنید