问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data.OleDb;usingSystem.Data;usingSystem.Configuration;publicpartialclassWelCome:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidbtnlogin_Click(objectsender,EventArgse){stringuser=this.tbUser.Text.ToString();stringpassword=this.tbpassword.Value.ToString();login(user,password);}privatevoidlogin(stringUser,stringPassword){stringstr=ConfigurationManager.ConnectionStrings["ConString"].ToString();stringsql="select*fromUserInfowhereID=@idandPassword=@pw";OleDbConnectioncon=newOleDbConnection(str);OleDbCommandcmd=con.CreateCommand();try{con.Open();cmd.CommandText=sql;cmd.Parameters.Add(User,"@id");cmd.Parameters.Add(Password,"@pw");OleDbDataReaderread=cmd.ExecuteReader();if(read.Read()){Response.Redirect("个人中心.aspx");}else{this.lbError.Text="您输入的用户名或者密码错误,请重新输入!";}}catch(Exception){}finally{con.Close();}}}
解决方案
解决方案二:
<connectionStrings><addname="ConString"connectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:VS编程注册登陆App_DataDatabase1.mdb;PersistSecurityInfo=True"/></connectionStrings>这是连接字符串
解决方案三:
if(read.Read()){Response.Redirect("个人中心.aspx");}这块判断的条件不对吧,OLEDB我没用过,刚查了下MSDN,这个方法的意思是前进到下一条记录,你这样判断有问题的吧
解决方案四:
额,这不是读取到符合条件的记录就为真吗
解决方案五:
引用3楼u013247416的回复:
额,这不是读取到符合条件的记录就为真吗
总觉的怪怪的,要不换一种写法?直接判断这条记录查出来是不是等于1sql="selectcount(*)romUserInfowhereID=@idandPassword=@pw"
解决方案六:
使用if(read.HasRows)进行判断
解决方案七:
你调试到哪里出错了,另外错误提示内容是什么???