迭代数据库中的列

时间:2012-04-05 01:45:02

标签: c# database visual-studio

单击“登录”按钮时,我想遍历表中的列并检查是否发生匹配。我该怎么做呢?  我已经连接到数据库,我正在从数据库中读取数据并写入数据库。我不确定如何迭代数据库。

P.S我是c#和视觉工作室的新手。我对C#没有太大的麻烦,因为我是从Java过来的,但是我很难与Visual工作室合作。

3 个答案:

答案 0 :(得分:2)

这很简单,你会看到。

            SqlConnection myConnection = new SqlConnection(@"Server = (Local); Integrated Security = True;" + "Database = insertDataBaseName"); // Assuming (Local)
            myConnection.Open();
            SqlCommand myCommand = myConnection.CreateCommand();
            myCommand.CommandText = ("SELECT UserName, Password,from Login"); // Where Login is your table . UserName and Password Columns
            SqlDataReader myReader = myCommand.ExecuteReader();
            bool login = false;

            while (myReader.Read())
            {
                if (userNameBox.Text.CompareTo(myReader["UserName"].ToString()) == 0 && passwordBox.Text.CompareTo(myReader["Password"].ToString()) == 0) // A little messy but does the job to compare your infos assuming your using a textbox for username and password
                {
                    login = true;
                }
            }

            if (login)
            {
                      //Your're in.
            }

            else
            {
                MessageBox.Show("Invalid UserName or Password", "Access Denied"); // Error message
            }

                 myReader.Close(); 
                 myConnection.Close(); // Just close everything

希望这会有所帮助。 如果您对此代码部分有任何疑问,请不要犹豫。

答案 1 :(得分:0)

在sql中这样的东西会有所帮助

Select top(1) from Users where Id = @Id

或在linq

var user = (from u in users 
            where u.Id == id
            select u).SingleOrDefault();

答案 2 :(得分:0)

如果您正在寻找用户名密码验证,我认为您不应该获取所有用户记录并循环迭代。如果您获得100000个用户注册怎么办?你真的想要迭代100000次?真的吗?

您应该查询您正在寻找的特定记录

有点像这样

SELECT TOP 1 UserID,FIRSTNAME,LASTNAME,HASHED_PASSWORD,SALT WHERE USERNAME='kristy'

再次对数据库执行该查询并查看是否存在任何记录,如果您有一条记录,现在可以使用您拥有的数据验证密码。