C#文本框输入的值与数据库记录匹配问题
我想检测在文本框中输入的编号,姓名,密码是否与数据库中的记录一样,如果一致就显示登录成功否则就显示输入信息有误。现在我遇到的问题是,输入错误的编号姓名密码,也会显示登陆成功!请各位帮忙看看,代码那里出错,或是有什么问题!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>");
}
}
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?还有三楼的思想我没弄懂,求解答! --------------------编程问答-------------------- 循环是因为要遍历数据库里的每一条记录呀 --------------------编程问答--------------------
--------------------编程问答-------------------- --------------------编程问答-------------------- 其实你可以写一条sql语句用count()聚集函数查询的,如果返回的个数大于0,就说明存在了,没必要去循环啊。
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>");
补充:.NET技术 , C#