Невозможно привести объект типа System.Byte к типу System.String. - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь ввести значение из базы данных в Combobox, и когда я запускаю его, я получаю следующую ошибку:

Невозможно привести объект типа 'System.Byte' к типу 'System. Строка '.'

Status имеет тип tinyint.

public void FillStatus()
{
    try
    {
        using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=DesignSaoOsig1;Integrated Security=True"))
        {
            conn.Open();
            string query = "SELECT DISTINCT Status FROM tblZaposleni_AD";
            SqlCommand cmd = new SqlCommand(query, conn);
            using (SqlDataReader saReader = cmd.ExecuteReader())
            {
                while (saReader.Read())
                {
                    string name = saReader.GetString(0);
                    ddlStatus.Items.Add(name);
                }
            }
        }
    }
    catch (Exception)
    {
        throw;
    }
}

Ответы [ 2 ]

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

Поскольку SQL Сервер tinyint преобразуется в byte дюйм. NET, вам нужно прочитать его как таковой, а затем преобразовать в строку:

byte dbValue = saReader.GetByte(0);
string name = dbValue.ToString();
ddlStatus.Items.Add(name);
0 голосов
/ 29 мая 2020

Я нашел, откуда взялась ошибка. Insted of

string name = saReader.GetString(0);

Я просто заменяю эту строку на эту

 string name = saReader.GetByte(0).ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...