gridview显示数据的sql语句问题
功能是查询,有一个dropdownlist--DDLSearch,textbox--TBSearch
现在textbox中输入关键字,dropdowlist选择相应的值,比如bookname等,实现分类查询,语句如下
string sql = "SELECT book_name,writer,price FROM book WHERE " + " ' " + DDLsearch.SelectedValue.Trim() + " ' " + "LIKE @insert1 ";
若将DDLsearch.SelectedValue.Trim() 改为bookname等是可以实现查询的,但用它后却什么也查不到,为什么?
两个变量不能同时应用吗?
怎样实现类似功能的查询?
不用为dropdownlist的value分别写几个事件吧?
------解决方案--------------------string sql = "SELECT book_name,writer,price FROM book WHERE " + " ' " + DDLsearch.SelectedValue.Trim() + " ' " + "LIKE @insert1 ";
语句有问题吧:
string sql = "SELECT book_name,writer,price FROM book WHERE " + DDLsearch.SelectedValue.Trim() + "LIKE @insert1 ";
DDLsearch.SelectedValue.Trim()是不是表中的字段名啊
------解决方案--------------------你的SQL要这样写:
Search tbsearch 是数据库字段名称
string sql = "select * from book where Search = ' "+DDLsearch.SelectedValue.Trim()+ " ' and tbsearch like '% "+TBSearch.text.tostring()+ "% ' ";
------解决方案--------------------如果DDLsearch.SelectedValue.Trim()是字段名的话,应该用以下这种写法:
string sql = "SELECT book_name,writer,price FROM book WHERE ' " + DDLsearch.SelectedValue.Trim() + " ' LIKE '% " + @insert1 + " ' ";
------解决方案--------------------上面写错了,不好意思,应该这样:
如果DDLsearch.SelectedValue.Trim()是字段名的话,应该用以下这种写法:
string sql = "SELECT book_name,writer,price FROM book WHERE " + DDLsearch.SelectedValue.Trim() + " LIKE '% " + @insert1 + " ' ";
------解决方案--------------------为什么又用拼接字符串,又用参数,这种写法超不规范
------解决方案--------------------caowenkai() 正解
------解决方案--------------------字段名不需要引号,去掉引号就可以了。
string sql = "SELECT book_name,writer,price FROM book "
+ " WHERE " + DDLsearch.SelectedValue.Trim() + "LIKE @insert1 ";