问题描述
<asp:DataListID="DataList1"runat="server"DataSourceID="sql2"><ItemTemplate></ItemTemplate></asp:DataList><asp:SqlDataSourceID="sql2"runat="server"ConnectionString="DataSource=AE09;InitialCatalog=cj;IntegratedSecurity=True"ProviderName="System.Data.SqlClient"SelectCommand="SELECT*FROM[qzhong]where+shows+"></asp:SqlDataSource>注:shows是从上一页面上传过来的变量.我是stringshows=Request["shows"];这样接收的.运行之后的错误是'+'附近有语法错误。请大家指出我的错误,谢谢
解决方案
解决方案二:
你那个错误不知道,多测试下吧,应该能找出来的,我这里是这样实现的,发出你看下有帮助没<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:sqlConn%>"SelectCommand="SELECT*FROM[AccessLogs]WHERE([aNum]=@aNum)"><SelectParameters><asp:ParameterName="aNum"Type="Int32"/></SelectParameters></asp:SqlDataSource>CS中的代码SqlDataSource1.SelectParameters["aNum"]=Request.QueryString["aNum"].ToString();
解决方案三:
stringshows=Request["shows"].Tostring();确保传过来的值拼起来的SQL语句的正确性。
解决方案四:
"SELECT*FROM[qzhong]where+shows+"这句就是你的sql执行语句了你的+show+根本就是写进去sql语句里了,和你是不是别的页传过来的没关系了,当然会报错
解决方案五:
想用SqlDataSource的话SelectCommand属性就要在后台cs里写stringshows=Request["shows"].Tostring();//确保传过来的值拼起来的SQL语句的正确性。sql2.SelectCommand="SELECT*FROM[qzhong]where"+shows
解决方案六:
同意楼上的分析,注意:sql2.SelectCommand是个string类型的,它由两部分组成,"SELECT*FROM[qzhong]where"子串和shows子串,所以要用sql2.SelectCommand="SELECT*FROM[qzhong]where"+shows像串糖葫芦一样将两个子串拼成一个大串
解决方案七:
3楼正解,SQL语句加上变量这肯定得在后台拼接
解决方案八:
stringshows=Request["shows"].ToString();SqlConnectionmyconnection=newSqlConnection("server=localhost;uid=sa;pwd=sa;database=cj");myconnection.Open();stringstrsql="select*from[qizhong]where"+shows;SqlCommandmycommand=newSqlCommand(strsql,myconnection);SqlDataReaderddd=mycommand.ExecuteReader();GridView1.DataSource=ddd;GridView1.DataBind();注:我在cs文件上修改后,第一行出现错误:未将对象引用设置到对象的实例。
解决方案九:
<asp:SqlDataSourceID="sql2"runat="server"ConnectionString="DataSource=AE09;InitialCatalog=cj;IntegratedSecurity=True"ProviderName="System.Data.SqlClient"SelectCommand="SELECT*FROM[qzhong]where"+shows+">