C# и MySQL | Как проверить, что запись уже подписана дважды? - PullRequest
0 голосов
/ 08 апреля 2020

Цель:

Я пытаюсь получить счетчик из запроса в переменную. С помощью переменной я буду определять, была ли она подписана дважды или нет.

Код:

 //Check if multiple records signed twice alreay
int CheckRecord = 0;
//Query to return number of records
string userCheckQuery = "select count(*) from request join verify on request_id = request.id where request.id = @checking;";

//Connection string
using (var conn = new MySqlConnection(connString))
    {
    conn.Open();
    using (var checkUser = new MySqlCommand(userCheckQuery, conn))
    {
        checkUser.Parameters.AddWithValue("@checking", dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
        CheckRecord = (Int32)checkUser.ExecuteScalar();

    }
    }

    //If less than 2, continue, else stop
    if (CheckRecord < 2)
    {
    }

Подробности

Я точно знаю, что этот код неверен, если использовать эту строку кода CheckRecord = (Int32)checkUser.ExecuteScalar();. Потому что он выдает ошибку System.InvalidCastException: 'Specified cast is not valid.'.

Вопрос:

Кто-нибудь знает лучшее решение, чтобы получить счетчик из запроса и создать с ним оператор if ?

Кроме того, я в правильных строках кодирую это правильно?

Желаемый результат

if (CheckRecord is less than 2 continue) else (CheckRecord is 2 then stop)

1 Ответ

1 голос
/ 08 апреля 2020

Как сказано в комментариях, вы можете использовать SQL для фильтрации необходимых данных. Что-то вроде

 select count(*) 
   from request 
   join verify on request_id = request.id 
  where request.id = checking 
 having count(*) > 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...