none
sqlexception was unhandled by user code RRS feed

  • Question

  • The error is Incorrect Syntax near Like

    i cant able to find the error pls pls help me!!!!!!!!!!!!!!!!!!!!!!!

    ALTER PROCEDURE [dbo].[USP_Search_PatientDetailReco]
    (
                          @Patient_Id varchar(50),
                          @Patient_Name varchar(50),
                          /*@Age int ,*/
                          @Gender varchar(50),
                          @Blood_Group varchar(50) ,
                         /* @Dateofvisit datetime,*/
     @Doctor_Name varchar(50)
                          /*@Doctor_Type varchar(50),
                          @Patient_Type varchar(50) ,
                          @Remarks varchar(50)*/
    )
     
    AS
     
     DECLARE @sql VARCHAR(1000) 
     
                                 select @sql = 'SELECT patient.Patient_Id,
                                  patient.Patient_Name,
                           patient.Gender,
                           patient.Blood_Group,
                           patient.Doctor_Name
     
    FROM patient'
     
    if @Patient_Id is not null
    begin
                                                 
    select @sql = @sql + 'and Patient_Id like ("%'+@Patient_Id+'%")'

    end

    if @Patient_Name is not null
    begin 

    select @sql = @sql + 'and Patient_Name like ("%'+@Patient_Name+'%")'
    end

    /*if @AGE is not null
    begin
    select @sql = @sql + 'and AGE like ("%'+ @AGE+'%")'
    end*/
    if @Gender is not null
    begin
    select @sql = @sql + 'and Gender like ("%'+@Gender+'%")'
    end

    if @Blood_Group is not null
    begin
    select @sql = @sql + 'and Blood_Group like ("%'+@Blood_Group+'%")'
    end

    /*if @Dateofvisit is not null
    begin
    select @sql = @sql + 'and Dateofvisit like ("%'+ @Dateofvisit+'%")'
    end*/

    if @Doctor_Name is not null
    begin
    select @sql = @sql + 'and Doctor_Name like ("%'+@Doctor_Name+'%")'
    end


    /*if @Doctor_Type is not null
    begin
    select @sql = @sql + 'and Doctor_Type like ("%'+ @Doctor_Type+'%")'
    end



    if @Patient_Type is not null
    begin
    select @sql = @sql + 'and Patient_Type like ("%'+@Patient_Type+'%")'
    end


    if @Remarks is not null
    begin
    select @sql = @sql + 'and @Remarks like ("%'+@Remarks+'%")'
    end
    */


    exec(@sql)







     
    Wednesday, September 8, 2010 9:29 AM

Answers

  • the issue related to the fact that you put double quotes inside of your SQL statement around LIKE values. Instead of LIKE "%MyValue%" it should be LIKE '%MyValue%'

     


    Val Mazur (MVP) http://www.xporttools.net
    • Marked as answer by liurong luo Friday, September 10, 2010 4:46 AM
    Wednesday, September 8, 2010 10:34 AM
    Moderator

All replies

  • The error is Incorrect Syntax near Like

    i cant able to find the error pls pls help me!!!!!!!!!!!!!!!!!!!!!!!

    ALTER PROCEDURE [dbo].[USP_Search_PatientDetailReco]
    (
                          @Patient_Id varchar(50),
                          @Patient_Name varchar(50),
                          /*@Age int ,*/
                          @Gender varchar(50),
                          @Blood_Group varchar(50) ,
                         /* @Dateofvisit datetime,*/
     @Doctor_Name varchar(50)
                          /*@Doctor_Type varchar(50),
                          @Patient_Type varchar(50) ,
                          @Remarks varchar(50)*/
    )
     
    AS
     
     DECLARE @sql VARCHAR(1000) 
     
                                 select @sql = 'SELECT patient.Patient_Id,
                                  patient.Patient_Name,
                           patient.Gender,
                           patient.Blood_Group,
                           patient.Doctor_Name
     
    FROM patient'
     
    if @Patient_Id is not null
    begin
                                                 
    select @sql = @sql + 'and Patient_Id like ("%'+@Patient_Id+'%")'

    end

    if @Patient_Name is not null
    begin 

    select @sql = @sql + 'and Patient_Name like ("%'+@Patient_Name+'%")'
    end

    /*if @AGE is not null
    begin
    select @sql = @sql + 'and AGE like ("%'+ @AGE+'%")'
    end*/
    if @Gender is not null
    begin
    select @sql = @sql + 'and Gender like ("%'+@Gender+'%")'
    end

    if @Blood_Group is not null
    begin
    select @sql = @sql + 'and Blood_Group like ("%'+@Blood_Group+'%")'
    end

    /*if @Dateofvisit is not null
    begin
    select @sql = @sql + 'and Dateofvisit like ("%'+ @Dateofvisit+'%")'
    end*/

    if @Doctor_Name is not null
    begin
    select @sql = @sql + 'and Doctor_Name like ("%'+@Doctor_Name+'%")'
    end


    /*if @Doctor_Type is not null
    begin
    select @sql = @sql + 'and Doctor_Type like ("%'+ @Doctor_Type+'%")'
    end



    if @Patient_Type is not null
    begin
    select @sql = @sql + 'and Patient_Type like ("%'+@Patient_Type+'%")'
    end


    if @Remarks is not null
    begin
    select @sql = @sql + 'and @Remarks like ("%'+@Remarks+'%")'
    end
    */


    exec(@sql)







     
    soon help
    Wednesday, September 8, 2010 9:37 AM
  • the issue related to the fact that you put double quotes inside of your SQL statement around LIKE values. Instead of LIKE "%MyValue%" it should be LIKE '%MyValue%'

     


    Val Mazur (MVP) http://www.xporttools.net
    • Marked as answer by liurong luo Friday, September 10, 2010 4:46 AM
    Wednesday, September 8, 2010 10:34 AM
    Moderator
  • Thanks for u r reply but again it giving error ly . 

     

    here my stored procedure

    ---------------------------------------

    ALTER PROCEDURE [dbo].[USP_Search_PatientDetailRec]

    (

                          @Patient_Id varchar(50),

                          @Patient_Name varchar(50),

                          @Gender varchar(50),

                          @Blood_Group varchar(50) ,

                          @Doctor_Name varchar(50)

     

    )

     

    AS

     

     DECLARE @sql VARCHAR(1000) 

     select @sql = 'SELECT [patient].Patient_Id,

          [patient].Patient_Name,

      [patient].Gender,

      [patient].Blood_Group,

      [patient].Doctor_Name

                           FROM patient'

     

    if @Patient_Id is not null

    begin

     

    select @sql = @sql + 'and Patient_Id like ("%+@Patient_Id+%")'

     

    end

     

    if @Patient_Name is not null

    begin 

     

    select @sql = @sql + 'and Patient_Name like ("%+@Patient_Name+%")'

    end

     

     

    if @Gender is not null

    begin

    select @sql = @sql + 'and Gender like ("%+@Gender+%")'

    end

     

    if @Blood_Group is not null

    begin

    select @sql = @sql+'and Blood_Group like ("%+@Blood_Group+%")'

    end

     

     

     

    if @Doctor_Name is not null

    begin

    select @sql = @sql+'and Doctor_Name like ("%+@Doctor_Name+%")'

    end

     

    exec(@sql)

     

    my front  end  codings

    which is placed in default.aspx page

    ---------------------------------------

     

    using System;

    using System.Collections;

    using System.Configuration;

    using System.Data;

    using System.Linq;

    using System.Web;

    using System.Web.Security;

    using System.Web.UI;

    using System.Web.UI.HtmlControls;

    using System.Web.UI.WebControls;

    using System.Web.UI.WebControls.WebParts;

    using System.Xml.Linq;

    using System.Data.SqlClient;

    using Ap = Application;

     

    public partial class Default5 : System.Web.UI.Page

    {

        protected Ap.Class1 oClass;

     

        protected void Page_Load(object sender, EventArgs e)

        {

     

            oClass = new Ap.Class1(Constant.ApplicationDB);

     

            if (!IsPostBack)

            {

     

            }

     

     

        }

     

     

     

     

        protected void Button1_Click(object sender, EventArgs e)

        {

            DataSet patientdetail;

           string Patient_Id=txt_patid.Text;

           string Patient_name=txt_patname.Text;

          // long Age=Convert.ToInt64( txt_age.Text);

           string Gender = txt_gender.Text;

           string Blood_Group = txt_bloodgp.Text;

           string Doctor_Name = txt_docname.Text;

     

            if (txt_patid.Text != "")

            {

                Patient_Id = Convert.ToString(txt_patid.Text);

            }

            else

            {

                Patient_Id = null;

            }

     

            if (txt_patname.Text != " ")

            {

                Patient_name = Convert.ToString(txt_patname.Text);

            }

            else

            {

                Patient_name = null;

            }

     

     

           if (txt_gender.Text != "")

           {

               Gender = Convert.ToString(txt_gender.Text);

           }

           else

           {

               Gender = null;

           }

     

     

            if (txt_bloodgp.Text != "")

            {

                Blood_Group = Convert.ToString(txt_bloodgp.Text);

            }

            else

            {

                Blood_Group = null;

            }

     

     

     

            if (txt_docname.Text != "")

            {

                Doctor_Name = Convert.ToString(txt_docname.Text);

            }

            else

            {

                Doctor_Name = null;

            }

     

     

            patientdetail = oClass.GetSearchPatientDetail(Patient_Id, Patient_name,Gender, Blood_Group,Doctor_Name);

            if (patientdetail.Tables[0].Rows.Count == 0)

            {

                lblMessage.Text = "No Records Found";

                divTable.Visible = false;

     

            }

            else

            {

                lblMessage.Text = "";

                divTable.Visible = true;

            }

     

            GridView1.DataSource = patientdetail;

            GridView1.DataBind();

            patientdetail.Dispose();

        }

     

        protected void TextBox1_TextChanged(object sender, EventArgs e)

        {

     

        }

        protected void TextBox2_TextChanged(object sender, EventArgs e)

        {

     

        }

     

    }


     

    then codings placed in  class.cs 

     

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Text;

    using System.IO;

    using System.Data;

    using System.Data.SqlClient;

    using System.Linq;

    using System.Data.Common;

    using Microsoft.Practices.EnterpriseLibrary.Data;

    using Microsoft.Practices.EnterpriseLibrary.Data.Sql;

     

     

    namespace Application

    {

        public class Class1

        {

            protected Class1 oClass;

            private Database ApplnDB;

            private SqlDatabase ODB = null;

            // DbCommand oCommand = ODB.GetStoredProcCommand(USP_AddPatientDetailss);

            public Class1(string StrDatabase)

            {

                ODB = DatabaseFactory.CreateDatabase(StrDatabase) as SqlDatabase;

                DbCommand oCommand = ODB.GetStoredProcCommand(USP_Search_PatientDetailRec);

            }

     

            private const string USP_AddPatientDetailss = "USP_AddPatientDetailss";

            private const string USP_AddPatientDetailss_Parameter1 = "@Patient_Id";

            private const string USP_AddPatientDetailss_Parameter2 = "@Patient_Name";

            private const string USP_AddPatientDetailss_Parameter3 = "@Age";

            private const string USP_AddPatientDetailss_Parameter4 = "@Gender";

            private const string USP_AddPatientDetailss_Parameter5 = "@Blood_Group";

            private const string USP_AddPatientDetailss_Parameter6 = "@Dateofvisit";

            private const string USP_AddPatientDetailss_Parameter7 = "@Doctor_Name";

            private const string USP_AddPatientDetailss_Parameter8 = "@Doctor_Type";

            private const string USP_AddPatientDetailss_Parameter9 = "@Patient_Type";

            private const string USP_AddPatientDetailss_Parameter10 = "@Remarks";

     

     

     

            public void AddPatient(string Patient_Id,

                                    string Patient_name,

                                    long Age,

                                    string Gender,

                                    string Blood_Group,

                                    DateTime Dateofvisit,

                                    string Doctor_Name,

                                    string Doctor_Type,

                                    string Patient_Type,

                                    string Remarks)

            {

                DbCommand oCommand = ODB.GetStoredProcCommand(USP_AddPatientDetailss);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter1, DbType.String, Patient_Id);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter2, DbType.String, Patient_name);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter3, DbType.Int64, Age);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter4, DbType.String, Gender);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter5, DbType.String, Blood_Group);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter6, DbType.DateTime, Dateofvisit);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter7, DbType.String, Doctor_Name);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter8, DbType.String, Doctor_Type);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter9, DbType.String, Patient_Type);

                ODB.AddInParameter(oCommand, USP_AddPatientDetailss_Parameter10, DbType.String, Remarks);

                ODB.ExecuteNonQuery(oCommand);

            }

     

              private const string USP_Search_PatientDetailRec = "USP_Search_PatientDetailRec";

              private const string USP_Search_PatientDetailRec_Parameter1 = "@Patient_Id";

              private const string USP_Search_PatientDetailRec_Parameter2 = "@Patient_Name";

              private const string USP_Search_PatientDetailRec_Parameter4 = "@Gender";

              private const string USP_Search_PatientDetailRec_Parameter5 = "@Blood_Group";

              private const string USP_Search_PatientDetailRec_Parameter7 = "@Doctor_Name";

     

     

     

            public DataSet GetSearchPatientDetail( string Patient_Id,

                                                   string Patient_name,

                                                   //long Age,

                                                   string Gender,

                                                   string Blood_Group,

                                                   string Doctor_Name)

     

     

     

     

            {

                try

                {

                    DbCommand oCommand = ODB.GetStoredProcCommand(USP_Search_PatientDetailRec);

     

     

                    if (Patient_Id == "")

                    {

     

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter1, DbType.String, DBNull.Value);

                    }

                    else

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter1, DbType.String, Patient_Id);

                    }

     

     

     

                    if (Patient_name == "")

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter2, DbType.String, DBNull.Value);

                    }

                    else

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter2, DbType.String, Patient_name);

                    }

     

     

     

                    if (Gender == "")

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter4, DbType.String, DBNull.Value);

                    }

                    else

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter4, DbType.String, Gender);

                    }

     

     

     

                    if (Blood_Group == "")

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter5, DbType.String, DBNull.Value);

                    }

                    else

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter5, DbType.String, Blood_Group);

                    }

     

     

     

     

                    if (Doctor_Name == "")

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter7, DbType.String, DBNull.Value);

                    }

                    else

                    {

                        ODB.AddInParameter(oCommand, USP_Search_PatientDetailRec_Parameter7, DbType.String, Doctor_Name);

                    }

     

                              return ODB.ExecuteDataSet(oCommand);

                }

                catch (Exception)

                {

     

     

     

                    throw;

                }

            }

     

        }

     

    }

     

        pls find the error

     

     

     

    Tuesday, September 14, 2010 6:40 AM
  • What kind of error do you receive?
    Val Mazur (MVP) http://www.xporttools.net
    Wednesday, September 15, 2010 10:02 AM
    Moderator
  • Again i changed my store procedure but stil error coming lik dis

     Error: Incorrect syntax near the keyword 'like'.
    Unclosed quotation mark after the character string '%Female%")'.

     

    my store procedure here

    alter PROCEDURE [dbo].[USP_Search_PatientDetailRec]

    (

                          @Patient_Id  varchar(50),

                          @Patient_Name varchar(50),

                          @Gender varchar(50),

                          @Blood_Group varchar(50) ,

                          @Doctor_Name varchar(50)

     

    )

     

    As

     

     DECLARE @sql VARCHAR(1000) 

     select @sql = 'SELECT Patient_Id,

          Patient_Name,

      Gender,

      Blood_Group,

      Doctor_Name

                     FROM

    patient'

     

     

    if @Patient_Id is not null

    begin

     

    select @sql = @sql + ' where Patient_Id  = '+ cast(@Patient_Id as varchar)

     

    end

     

     

    if @Patient_Name is not null

    begin 

     

    select @sql = @sql + 'and Patient_Name like (''%'+ @Patient_Name +'%")'

    end

     

     

    if @Gender is not null

    begin

    select @sql = @sql + 'and Gender like (''%'+ @Gender +'%")'

    end

     

    if @Blood_Group is not null

    begin

    select @sql = @sql+'and Blood_Group like (''%'+ @Blood_Group +'%")'

    end

     

     

     

    if @Doctor_Name is not null

    begin

    select @sql = @sql+'and Doctor_Name like (''%'+ @Doctor_Name +'%")'

    end

     

    exec(@sql)

     

     

     

    Thursday, September 16, 2010 6:18 AM
  • As you see in your message it is syntax error. You open value for LIKE statement with single quote, but close it with the double quote,. It should be '%Female%')"


    Val Mazur (MVP) http://www.xporttools.net
    Thursday, September 16, 2010 11:40 AM
    Moderator
  • ya i just tried but stil same error, can u send stored procedure like this, i want stored procedure structure, if u can just correct my stored procedure and send to me pls!!!!!!!!!!!!
    Friday, September 17, 2010 4:47 AM