繁体   English   中英

搜索在SQL表中的字符,并显示在GridView控件与该字符ASP.NET C#开头的所有记录

[英]Searching a character in sql table and displaying all records in gridview that start with that character ASP.NET c#

美好的一天,我正在研究ASP.NET C#应用程序,该应用程序搜索sql表并将结果返回到gridview中。 我使用like运算符使它可以工作,但是我意识到,如果搜索一个字符,它将带回其中包含该字符的任何记录,而我想要的是如果我搜索一个字符,则我希望所有以该字符开头的记录。 它还应该允许我正常搜索,这是我之前所做的

//I have a connection manager class in my app code folder

 SqlConnection connection = connectionManager.GetConnection();

        SqlCommand myCommand = new SqlCommand();
        myCommand.Connection = connection;


        String str = "select PR_NAME_GN, PR_NAME_SURN, EVENT_PARISH, EVENT_YEAR, EVENT_TYPE, FS_IMAGE_ID from Jam01 where (PR_NAME_GN like '%' + @deceasedFirstName + '%' AND PR_NAME_SURN like '%' + @deceasedLastName + '%' AND EVENT_PARISH like '%' + @ParishOfDeath+ '%' AND EVENT_YEAR like '%' + @YearOfDeath+ '%' AND EVENT_TYPE like '%' + @TypeDeath+ '%' AND FS_IMAGE_ID like '%' + @ImgLocation+ '%')";

        SqlCommand command = new SqlCommand(str, connection);






        command.Parameters.Add("@deceasedFirstName", SqlDbType.NVarChar).Value = DeathFirstNametbox.Text;
        command.Parameters.Add("@deceasedLastName", SqlDbType.NVarChar).Value = DeathLastNametbox.Text;
        command.Parameters.Add("@ParishOfDeath", SqlDbType.NVarChar).Value = ParishoDeathtbox.Text;
        command.Parameters.Add("@YearOfDeath", SqlDbType.NVarChar).Value = YearofDeathtbox.Text;
        command.Parameters.Add("@TypeDeath", SqlDbType.NVarChar).Value = type_Death.Text;
        command.Parameters.Add("@ImgLocation", SqlDbType.NVarChar).Value = "";

        command.ExecuteNonQuery();

        SqlDataAdapter sda = new SqlDataAdapter();

        sda.SelectCommand = command;


        DataSet ds = new DataSet();

        sda.Fill(ds, "PR_NAME_GN");
        sda.Fill(ds, "PR_NAME_SURN");
        sda.Fill(ds, "EVENT_PARISH");
        sda.Fill(ds, "EVENT_YEAR");
        sda.Fill(ds, "EVENT_TYPE");
        sda.Fill(ds, "FS_IMAGE_ID");

        GridView1.DataSource = ds;

        GridView1.DataBind();


        connection.Close();

我需要有关如何重新处理sql语句的建议。 我对此很陌生,所以请多多包涵。

删除LIKE关键字之后的前导%通配符,以便仅返回以指定值开头的值:

String str = "SELECT PR_NAME_GN, PR_NAME_SURN, EVENT_PARISH, EVENT_YEAR, EVENT_TYPE, FS_IMAGE_ID FROM Jam01 WHERE (PR_NAME_GN LIKE @deceasedFirstName + '%' AND PR_NAME_SURN LIKE @deceasedLastName + '%' AND EVENT_PARISH like @ParishOfDeath + '%' AND EVENT_YEAR LIKE @YearOfDeath+ '%' AND EVENT_TYPE LIKE @TypeDeath+ '%' AND FS_IMAGE_ID LIKE @ImgLocation + '%');";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM