首页 新闻 搜索 专区 学院

请问为什么查询的结果一直是到登录失败呢?

0
悬赏园豆:50 [已解决问题] 解决于 2019-06-06 13:35

string LoingName= textBox1.Text;
string Password=textBox2.Text;
SqlConnection conn = new SqlConnection("server=.;database=中移建设综合资料查询系统;uid=sa;pwd=123");
conn.Open();
string sql = "select * from Loing where LoingName='" + LoingName + "' and Password='" + Password + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
int a = cmd.ExecuteNonQuery();
if (a > 0)
{

            MessageBox.Show("登录成功");

        }
        else
        { 
        
        
        MessageBox.Show("登录失败");            
        }


    }
一只菜鸟啊的主页 一只菜鸟啊 | 初学一级 | 园豆:126
提问于:2019-06-05 22:38
< >
分享
最佳答案
0

很简单,改下代码就行了:

string sql = "select count (1) from Loing where LoingName='" + LoingName + "' and Password='" + Password + "'";
object count = cmd.ExecuteScalar();
int a = Convert.ToInt32(count);
收获园豆:50
三人乐乐 | 老鸟四级 |园豆:3250 | 2019-06-06 10:02

谢谢

一只菜鸟啊 | 园豆:126 (初学一级) | 2019-06-06 13:34
其他回答(3)
1

ExecuteNonQuery方法在你执行insert、update和delete 语句的时候返回的是被影响的行数,执行其他类型的语句的时候都是返回-1,就是说在这里执行查询语句无论有没有查询到结果数据,都是返回的-1;你可以在判断a>0的地方打个断点看一下

画笔灬 | 园豆:910 (小虾三级) | 2019-06-06 08:54
0

可以看下 https://www.cnblogs.com/best/p/7714500.html 这个里面的基础教程,下面的代码你可以参考一下:

//查询
private void btnQuery_Click(object sender, EventArgs e)
{
//创建连接对象,并使用using释放(关闭),连接用完后会被自动关闭
using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=MyCar"))
{
//打开连接
conn.Open();
//将执行的sql
String sql = "select Id,Title,Speed,Info from Car";
//创建命令对象,指定要执行sql语句与连接对象conn
SqlCommand cmd = new SqlCommand(sql, conn);
//执行查询返回结果集
SqlDataReader sdr = cmd.ExecuteReader();
//下移游标,读取一行,如果没有数据了则返回false
while (sdr.Read())
{
Console.WriteLine("编号:" + sdr["Id"] + ",车名:" + sdr["Title"] + ",速度:" + sdr["Speed"]);
}
}
}

默卿 | 园豆:4564 (老鸟四级) | 2019-06-06 09:02
0

把登录名、密码、sql语句、查到的数据通过log打印出来比对一下数据,看一下数据和数据库的数据一样不一样

小光 | 园豆:1830 (小虾三级) | 2019-06-06 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册