@Serjio-Grig
Тот самый никто (=

Как проверить, найдена ли запись в БД?

Работаю с MySQL.Data в C#.

Есть такой код:
user_query = @"SELECT * FROM users WHERE username='"+username+"' AND password='"+password+"'";
MySqlCommand user_search = new MySqlCommand(user_query,MYSQLConnection);


Как проверить - есть ли совпадения, а если есть, то выбрать только последнее?

Что-то вроде в PHP:
$query = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `username`='".$username."' AND `password`='".$password."' ORDER BY `id` DESC LIMIT 1"));
if($query){
$query = $query[0];
// Говорим, что юхер найден
}else{
exit("Пользователь не найден");
}
  • Вопрос задан
  • 4253 просмотра
Решения вопроса 1
JohnnyGat
@JohnnyGat
Стараюсь писать код, понятный человеку.
Пример для MSSQL, думаю в вашем случае надо будет только дописать "My" перед "Sql"

SqlConnection con;
SqlCommand cmd;
SqlDataReader dr;

con = new SqlConnection();
con.ConnectionString = "строка подключения к БД";

cmd = new SqlCommand();
cmd.Connection = con;

con.Open();
cmd.CommandText = "SELECT * FROM users WHERE username='"+username+"' AND password='"+password+"'";
dr = cmd.ExecuteReader();
dr.Read();
if ((string)dr["username"] != "")
// юзер найден
else
// юзер не найден
con.Close();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@sofull
..... order by ID DESC ?
Ответ написан
@diimahabr
Если возвращается коллекция, то вызвать метод Count(), чтобы узнать нашлось ли что-то. Чтобы выбрать последний, воспользоваться ответом выше или взять [Count()-1]-й элемент.

А вообще, здесь всё есть.
https://dev.mysql.com/doc/connector-net/en/connect...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы