为什么我的ASP代码报错呀 高手给我看看吧
string strconn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("App_Data\\news.mdb");
OleDbConnection conn = new OleDbConnection(strconn);
string Username = "";
string Pwd = "";
Username = this.Login1.UserName.Trim();
Pwd = this.Login1.Password.Trim();
string Sql;
Sql = "select count(*) from user where username='" + Username + "' and pwd='" + Pwd + "'";
OleDbCommand cmd = new OleDbCommand(Sql, conn);
conn.Open();
int ret = (int)cmd.ExecuteScalar();
conn.Close();
if (ret <= 0)
{
Response.Write("<script> alert(\"登录失败!用户名或密码错误!\")</script>");
}
else
{
Session["username"] = Username;
}
没什么报 from 语法错误呀
追问:我的语句改了很多次了 你说的我也用了 不行 是不是语句里面的参数没有传进去呀呀 我把下面的换了 Username = this.Login1.UserName.Trim();
Pwd = this.Login1.Password.Trim();
不用 登陆控件 而直接用 一个TEXTbox 传值就行了
答案:楼上的,看清楚楼主写的东西,人家是用c#做的,你弄个asp的过来人家怎么看
回楼主,select count(*) from user where username='" + Username + "' and pwd='" + Pwd + "'
这个语句肯定不行,既然是验证登录,数据行肯定只有一行,count是多余的,而如果登录失败,即没有记录的话,那count语句就出错了,把count删了吧,改成×
我觉得 select * from.....就可以了啊
select count(*)是用来计数的,所以就会报错
怎么搞这么复杂啊,看起来也乱七八糟的,是不是使用DW做的连接啊?!!!!!!!!
SET Conn= Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
Conn.Open Server.MapPath("App_Data\\news.mdb")
sql="select * from [user] where.................."
Set rs=conn.execute(sql)
if rs.eof then
'输出错误
else
'写入session
end if
-------------------
另外,关键....你的user数据表,sql查询的时候最好带上[user],user为系统保留的关键字一般不使用的
Sql = "select count(*) from user where username='" + Username + "' and pwd='" + Pwd + "'";
你这一句查询的是从数据表中返回符合的记录条数,而并不是查询用户名和密码.
count(*)里面你把*换成一个具体的列试试 我以前就出过这个错 后来全用count(id)就好了
上一个:求一排值班表系统,最好是ASP代码写的
下一个:asp数据库代码问题