问题描述
这是一个登陆程序stringstrConn=WebConfigurationManager.ConnectionStrings["festivalConnectionString"].ConnectionString;SqlConnectioncon=newSqlConnection(strConn);con.Open();SqlDataAdaptersqld=newSqlDataAdapter("SELECTuser_id,user_nameFROMZ_USERWHERE"+"user_login=@user_loginANDuser_password=@user_password"+"'",con);sqld.SelectCommand.Parameters.AddWithValue("@user_login",TextBox1.Text);sqld.SelectCommand.Parameters.AddWithValue("@user_password",TextBox2.Text);DataSetds=newDataSet();sqld.Fill(ds,"user");.//就这个地方一直出错DataTabledTable=ds.Tables["user"];DataRowCollectionrows=dTable.Rows;if(rows.Count>0){Session["user_id"]=rows[0][0];Session["user_name"]=rows[0][1];ShowInfo(Int32.Parse(rows[0][0].ToString()));}else{Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"success","alert("用户名密码错误");",true);}con.Close();con=null;}错误信息Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktraceformoreinformationabouttheerrorandwhereitoriginatedinthecode.System.Data.SqlClient.SqlException:“=”附近有语法错误。SourceError:Line25:sqld.SelectCommand.Parameters.AddWithValue("@password",TextBox2.Text);Line26:DataSetds=newDataSet();Line27:sqld.Fill(ds,"user");Line28:DataTabledTable=ds.Tables["user"];Line29:DataRowCollectionrows=dTable.Rows;
解决方案
解决方案二:
where后面明显没空格。。。。
解决方案三:
引用1楼just_so_so_yjj的回复:
where后面明显没空格。。。。
"SELECTuser_id,user_nameFROMZ_USERWHERE"+"user_login=@user_loginANDuser_password=@user_password"+"'"你这sql有问题吧,最后那+“‘“没必要加上了,用了参数替换不用单引号了,而且你这个单引号还只有后面一半
解决方案四:
很明显你实例化SqlDataAdapter的时候,sql语句不能在数据库执行。SqlDataAdaptersqld=newSqlDataAdapter("SELECTuser_id,user_nameFROMZ_USERWHEREuser_login=@user_loginANDuser_password=@user_password",con);
解决方案五:
“=”附近有语法错误这句话比较明显说明sql语句有问题"SELECTuser_id,user_nameFROMZ_USERWHERE"+"user_login=@user_loginANDuser_password=@user_password"+"'"WHERE"+"user_login这里少了一个空格。应该是"SELECTuser_id,user_nameFROMZ_USERWHERE"+"user_login=@user_loginANDuser_password=@user_password"+"'"
解决方案六:
引用4楼hanjun0612的回复:
“=”附近有语法错误这句话比较明显说明sql语句有问题"SELECTuser_id,user_nameFROMZ_USERWHERE"+"user_login=@user_loginANDuser_password=@user_password"+"'"WHERE"+"user_login这里少了一个空格。应该是"SELECTuser_id,user_nameFROMZ_USERWHERE"+"user_login=@user_loginANDuser_password=@user_password"+"'"
还有,刚才没注意,最后单引号不需要
解决方案七:
where后面少空格,=后面少'