当前位置:编程学习 > C#/ASP.NET >>

C#文本框输入的值与数据库记录匹配问题

我想检测在文本框中输入的编号,姓名,密码是否与数据库中的记录一样,如果一致就显示登录成功否则就显示输入信息有误。现在我遇到的问题是,输入错误的编号姓名密码,也会显示登陆成功!请各位帮忙看看,代码那里出错,或是有什么问题!
 
for (int i = 0; i < MyDataSet.Tables["Teacher"].Rows .Count ;i++) 
        {
            string ID =Convert .ToString ( MyDataSet.Tables ["Teacher"].Rows[i]["TeacherID"]);
            string Name = Convert.ToString(MyDataSet.Tables["Teacher"].Rows[i]["TeacherName"]);
            string Password = Convert.ToString(MyDataSet.Tables["Teacher"].Rows[i]["TeacherPassword"]);
            if (TeacherID.Text == ID && TeccherName .Text  == Name && TeacherPassword .Text == Password )
            {
                Response.Write("<script language=Javascript> alert(\"输入信息有误!\");</script>");
            }
            else
            {
                Response.Write ("<script language=Javascript>alert(\"登陆成功!\");</script>");
            }
        }
C# --------------------编程问答-------------------- 你的判断条件写反了 你这样判断是 当输入了错误的提示登录成功 输入正确的提示输入信息有误 --------------------编程问答--------------------

        bool bLogin = false;
        for (int i = 0; i < MyDataSet.Tables["Teacher"].Rows .Count ;i++) 
        {
            string ID =Convert .ToString ( MyDataSet.Tables ["Teacher"].Rows[i]["TeacherID"]);
            string Name = Convert.ToString(MyDataSet.Tables["Teacher"].Rows[i]["TeacherName"]);
            string Password = Convert.ToString(MyDataSet.Tables["Teacher"].Rows[i]["TeacherPassword"]);
            if (TeacherID.Text == ID && TeccherName .Text  == Name && TeacherPassword .Text == Password )
            {
                bLogin  = true;
                break;
            }
        }
        if (bLogin)
        {
            Response.Write ("<script language=Javascript>alert(\"登陆成功!\");
        }
        else
        {
            Response.Write("<script language=Javascript> alert(\"输入信息有误!\");</script>");
        }

也可以不写循环,用过滤,或者linq --------------------编程问答-------------------- 写反了,你输入错,返回的结果是成功了

 if (TeacherID.Text == ID && TeccherName .Text  == Name && TeacherPassword .Text == Password )
            {
               Response.Write ("<script language=Javascript>alert(\"登陆成功!\");</script>");
            }
            else
            {
         Response.Write("<script language=Javascript> alert(\"输入信息有误!\");</script>");

            }
--------------------编程问答-------------------- 既然是一样 为什么不这样写呢?



string sql="select count(1) from user where id= and name= and pwd="

然后执行它不管你是返回datatable还是dataset还是datareader就判断第一行第一列是否为0就行了

如果是0表示没查询到 否则就是查询到了 --------------------编程问答--------------------

?
1
2
3
4
5
6
7
8
9
 if (TeacherID.Text == ID && TeccherName .Text  == Name && TeacherPassword .Text == Password )
            {
               Response.Write ("<script language=Javascript>alert(\"登陆成功!\");</script>");
            }
            else
            {
         Response.Write("<script language=Javascript> alert(\"输入信息有误!\");</script>");
 
            }


这一个就够了吧。楼主循环的目的是什么? --------------------编程问答-------------------- 谢谢各位的提醒啊!写着写着就糊涂了,愣是找不到错在哪里! --------------------编程问答-------------------- 二楼的代码是属于过滤还是linp?还有三楼的思想我没弄懂,求解答! --------------------编程问答-------------------- 循环是因为要遍历数据库里的每一条记录呀 --------------------编程问答--------------------

List<DataRow> list = MyDataSet.Tables["Teacher"].AsEnumerable().Where(c => c.Field<string>("TeacherID") == TeacherID.Text && c.Field<string>("TeacherName") == TeacherName.Text && c.Field<string>("TeacherPassword") == TeacherPassword.Text).ToList();
if(list!=null&&list.Count > 0)
    Response.Write ("<script language=Javascript>alert(\"登陆成功!\");</script>");
else
    Response.Write("<script language=Javascript> alert(\"输入信息有误!\");</script>");
--------------------编程问答-------------------- --------------------编程问答--------------------
引用 8 楼 HYYColourful 的回复:
循环是因为要遍历数据库里的每一条记录呀
其实你可以写一条sql语句用count()聚集函数查询的,如果返回的个数大于0,就说明存在了,没必要去循环啊。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,