Я хочу получить значение из SQL базы данных сервера - PullRequest
0 голосов
/ 06 мая 2020

У меня проблема - я хочу получить значение из моего SQL выбора сервера, но он возвращает:

System.Data.SqlClient.SqlDataReader

Код:

static SqlConnection sqlconnection = new SqlConnection("Data Source=XXXX;Initial Catalog=XXXX;Integrated Security=True");
static SqlCommand sqlcommand = new SqlCommand("SELECT * FROM XXX where XXX = 'XXXX'", sqlconnection);

public static string DBSQL()
{
    // connect to database
    sqlconnection.Open();

    // execute  
    SqlDataReader myReader = sqlcommand.ExecuteReader();

    // return valueAC
    return myReader.ToString();
}

1 Ответ

0 голосов
/ 06 мая 2020

Вы пропустили несколько шагов. Всегда обращайтесь к примерам , предоставленным поставщиком . В частности, вы пытаетесь вернуть сам ридер , но вместо этого вам нужно читать данные из него. Примерно так:

SqlDataReader myReader = sqlcommand.ExecuteReader();
try
{
    if (myReader.HasRows)
    {
        // What should you do if there's more than one row?
        while (myReader.Read())
        {
            // Which value are you trying to read?
            return myReader.GetString(0);
        }
    }
    else
    {
        // What do you do when no rows are found?
        return string.Empty;
    }
}
finally
{
    // Make sure to close the reader
    myReader.Close();
}

Обратите внимание на несколько вопросов в комментариях к коду, на которые вы действительно должны ответить:

  1. Вы выбираете записи с потенциально нулевым ко многим , но пытается вернуть одно значение. Что вы хотите / ожидаете, когда счетчик результатов отличается от 1?
  2. Вы выполняете SELECT *, который предположительно получает более одного значения из базы данных. Какое значение вы хотите вернуть? (И зачем выбирать больше этого?)

Вы можете решить, что делать в этих различных случаях. Но в конечном итоге при использовании DataReader вам нужно получить возвращенные строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...