2012-04-05 2 views
0

Когда нажата кнопка «Войти», я хотел бы выполнить итерацию по столбцу в таблице и проверить, произошло ли совпадение. Как мне это сделать? Я подключился к базе данных, и я читаю из базы данных и прекрасно записываю в базу данных. Я не уверен, как я буду проходить через базу данных.Итерация через столбец в базе данных

P.S Я новичок как в C#, так и в визуальных студиях. У меня нет особых проблем с C#, так как я перешел с Java, но я изо всех сил пытаюсь справиться с Visual Studio.

+0

Напишите инструкцию select sql. –

+0

Вы упомянули, что читаете из базы данных. Как именно вы это делаете? – Jeremy

+1

Какие технологии вы используете для доступа к своей БД? SqlConnection, linq 2 sql, сущность framework ect? –

ответ

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 

Надеюсь, что это поможет. Не стесняйтесь, если у вас есть какие-либо вопросы по этой части кода.

+0

Это чистое чтение без генерируемого кода. Поскольку вы хотите читать только SQLDateReader, это сделает работу. – phadaphunk

+0

'While (Reader.Read())' часть - это то, где вы фактически перебираете свою таблицу, чтобы проверить соответствие. – phadaphunk

0

в SQL-то вроде этого поможет

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

или в LINQ

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

Если вы являетесь chekcing для проверки пароля имени пользователя, я думаю, вы не должны получать все записи пользователя и цикл Iterate через это. Что делать, если вы получаете 100000 пользовательских регистраций? Вы действительно хотите итерации 100000 раз? В самом деле ?

Вы, вероятно, следует запросить запись purticular вы ищете

Некоторые вещи, как этот

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

Выполнить этот запрос againinst базы данных и посмотреть, есть ли у вас какие-либо записи существуют, если у вас есть один запись сейчас, теперь вы можете подтвердить пароль с данными, которые у вас есть.

+1

Ооо не знал об этом! Я предполагаю, что тот, кто учился здесь. Сэкономив время на ввод текста, p – phadaphunk

Смежные вопросы