Как преобразовать результаты запроса? - PullRequest
0 голосов
/ 25 октября 2018

Мне нужно преобразовать строковый запрос в int для оценки.У меня все хорошо или существует другой способ сделать это?

Это выдержка из кода.Возможно ли преобразовать результат или нет?

Код:

string query = "SELECT Movie.Code FROM Movie WHERE Movie.Code = @code";

int i = 0;
i = int.Parse(query);

using (SqlCommand cmd = new SqlCommand(query))
{
    cmd.Connection = con;
    con.Open();

    using (SqlDataReader sdr = cmd.ExecuteReader())
    {
        string R1 = "OK";

        if (sdr.Read())
        {
            if (i > 0)
            {
                Re1 =  "OK";
            }
            else
            {
                 Re1 = "Fail";
            }
        }

        return Re1;
    }
}

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Если вас интересует только существование (одной) записи, вы можете просто запросить count и ExecuteScalar :

string query = "SELECT COUNT(Movie.Code) FROM Movie WHERE Movie.Code = @code";

int i = 0;

using (SqlCommand cmd = new SqlCommand(query))
{
    cmd.Connection = con;
    con.Open();

    i = (Int32)cmd.ExecuteScalar();

    if(i > 0)
    {
        // OK
    }
    else
    {
        // Fail
    }
}
0 голосов
/ 25 октября 2018

Вы пытаетесь проанализировать запрос, прежде чем он действительно получит результат.

i = int.Parse(query);

Вы можете сделать что-то подобное, чтобы прочитать результаты команды cmd.ExecuteReader().

if (reader.HasRows) {
        while (reader.Read())
        {
           if (reader.GetInt32(0) > 0)
           {
              Re1 =  "OK";
           }
           else {
              Re1 = "Fail";
           }
        }
    }
    else {
        Console.WriteLine("No rows found.");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...