日期:2014-05-17  浏览次数:20457 次

[求教]在选定的数据源上未找到名为“bookName”的字段或属性
我想做一个多条件的模糊查询,代码如下


protected void Button1_Click(object sender, EventArgs e)
    {
        string strsql = "";
        strsql = "SELECT bookId FROM Book WHERE 1=1";
        if(this.TextBox1.Text !="")
        {
            strsql += "AND bookName like'%" + this.TextBox1.Text.ToString() + "%'";
        }
        if(this.TextBox2.Text !="")
        {
            strsql += "AND author like'%" + this.TextBox2.Text.ToString() + "%'";
        }
        if(this.TextBox3.Text !="")
        {
            strsql += "AND ISBN like'%" + this.TextBox3.Text.ToString() + "%'";
        }
        SqlDataSource1.SelectCommand = strsql;
        GridView1.DataBind();
    }

然后就出现了在选定的数据源上未找到名为“bookName”的字段或属性
但是,我的Book表中的确是有bookName这一列,而且最开始我使用的是SelectCommand="SELECT * FROM [Book]",应该说不会存在漏选的情况,但是还是出现了这样的错误,请问这是什么原因造成的呢,而且怎样修改,请各位指点一下 谢谢了

------解决方案--------------------
  strsql += "AND bookName like'%" + this.TextBox1.Text.ToString() + "%'";

这里的后边都省了空格
   strsql += " AND bookName like'%" + this.TextBox1.Text.ToString() + "%' ";
这样就不会出问题了
------解决方案--------------------
你查询的结果 放哪了? 绑定到 GridView 上了? 是不是GridView上绑定了 bookName字段。
------解决方案--------------------
 strsql = "SELECT bookId FROM Book WHERE 1=1";
你只查询bookId,怎么可能有BookName??
把bookName添加进去
 strsql = "SELECT bookId,bookName,........... FROM Book WHERE 1=1";