C# 在3列表中登录失败

C# 在3列表中登录失败,c#,sql-server,login,C#,Sql Server,Login,我尝试在c#中登录,代码在2列表中正常工作,但在3列表中不工作 con.Open(); sda = new System.Data.SqlClient.SqlDataAdapter("Select * From login_faculty where uname = '" + uname.Text + "'and pass = '" + pass.Text + "' ", con); dt = new System.Data.DataTable();

我尝试在c#中登录,代码在2列表中正常工作,但在3列表中不工作

 con.Open();
        sda = new System.Data.SqlClient.SqlDataAdapter("Select * From login_faculty where uname = '" + uname.Text + "'and pass = '" + pass.Text + "' ", con);
        dt = new System.Data.DataTable();
        sda.Fill(dt);
        if (dt.Rows[0][0].ToString() == "1")
        {
            MessageBox.Show("Logined");
            name.Show();
            //current.Hide();
        }
        else
        {
            MessageBox.Show("Error");
        }
        con.Close();

你能提供更多关于什么是不起作用的信息吗?您是否看到错误或类似的情况?代码不继续if子句表示它不满足if条件,并继续执行else子句该表有3列,名称为fac_id、uname和pass!这段代码在多个级别上都存在严重问题。首先,您需要阅读、理解并开始使用参数化查询。这对sql注入是完全开放的。在bobby tables来访之前解决这个问题。其次,密码永远不应该以纯文本形式存储。我会做两件事:我会把条件拉到一个变量中,这样你就可以看到它被设置成什么,并找出它为什么不等于1。或者,如果您只能拥有用户名和密码的唯一组合,我会对数据表中的行进行计数,如果它是合法的,则计数将为1,否则它不是合法的,并且应该显示您的消息框。理想情况下,我会将变量传递给存储的进程,并返回一点以查看它是否合法。