[求教]在选定的数据源上未找到名为“bookName”的字段或属性

u010137280 2013-06-03 02:49:59
我想做一个多条件的模糊查询,代码如下


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]",应该说不会存在漏选的情况,但是还是出现了这样的错误,请问这是什么原因造成的呢,而且怎样修改,请各位指点一下 谢谢了
...全文
270 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2013-06-03
  • 打赏
  • 举报
回复
strsql = "SELECT bookId FROM Book WHERE 1=1"; 你只查询bookId,怎么可能有BookName?? 把bookName添加进去 strsql = "SELECT bookId,bookName,........... FROM Book WHERE 1=1";
  • 打赏
  • 举报
回复
哎!*代表所有字段对?...... 看张美图怡情一下
coobai 2013-06-03
  • 打赏
  • 举报
回复
你查询的结果 放哪了? 绑定到 GridView 上了? 是不是GridView上绑定了 bookName字段。
md5e 2013-06-03
  • 打赏
  • 举报
回复
SqlDataSource1可以要这样吧 SqlDataSource1.SelectCommand = strsql; SqlDataSource1.DataBind();
u010137280 2013-06-03
  • 打赏
  • 举报
回复
引用 2 楼 liuchaolin 的回复:
strsql += "AND bookName like'%" + this.TextBox1.Text.ToString() + "%'"; 这里的后边都省了空格 strsql += " AND bookName like'%" + this.TextBox1.Text.ToString() + "%' "; 这样就不会出问题了
已经照你说的进行修改

 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();
    }
可是还是不行,可以请你帮忙再看一下吗
Ahoo 2013-06-03
  • 打赏
  • 举报
回复
引用 2 楼 liuchaolin 的回复:
strsql += "AND bookName like'%" + this.TextBox1.Text.ToString() + "%'"; 这里的后边都省了空格 strsql += " AND bookName like'%" + this.TextBox1.Text.ToString() + "%' "; 这样就不会出问题了
++++ 并且建议使用 参数化查询,防止SQL脚本注入攻击.
md5e 2013-06-03
  • 打赏
  • 举报
回复
strsql += "AND bookName like'%" + this.TextBox1.Text.ToString() + "%'"; 这里的后边都省了空格 strsql += " AND bookName like'%" + this.TextBox1.Text.ToString() + "%' "; 这样就不会出问题了

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧