ListView SELECT查询不返回任何东西

本文关键字:任何东 返回 SELECT 查询 ListView | 更新日期: 2023-09-27 17:50:39

我正在构建一个图书馆管理软件,我试图按名称搜索书籍。但是,当我尝试使用我实现的东西时,什么也没有返回。

这是用于从数据库中检索数据的代码。

string constr = ConfigurationManager.ConnectionStrings["LibraryContext"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                string bookTitle = Request.QueryString["BookTitle"];
                cmd.Parameters.AddWithValue("@Title", bookTitle); 
                cmd.CommandText = "SELECT * FROM Books WHERE Title LIKE '%@Title%'";
                //cmd.Parameters.AddWithValue("@Title", bookTitle); 
                cmd.Connection = con;
                using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
                {
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                    lvCustomers.DataSource = dt;
                    lvCustomers.DataBind();
                }
            }
        }

谢谢你的帮助

ListView SELECT查询不返回任何东西

不要在参数周围加上引号

cmd.CommandText = "SELECT * FROM Books WHERE Title LIKE %@Title%";

参数周围的引号将其中的所有内容转换为文字字符串当然,我假设您没有任何书名字面上是"%@Title%"的书

我更喜欢用

cmd.CommandText = "SELECT * FROM Books WHERE Title LIKE @Title";       
cmd.Parameters.Add("@Title", SqlDbType.NVarChar).Value = "%" + bookTitle + "%"); 

AddWithValue是一个快捷方式,有许多缺点,你需要意识到在尝试使用它之前:我们可以停止使用AddWithValue吗?