Подтвердить что ты не робот

Текст типов данных и varchar несовместимы с равным оператору в С#

Я пытаюсь получить доступ к данным empname из employeeTable, но код, который я написал, дает мне следующую ошибку:

Текст типов данных и varchar несовместимы в равном оператору.

Пожалуйста, предложите решение

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    string Connection = "Data Source=(local);Initial catalog=Test;Integrated Security=true";
    string Query = "SELECT * FROM  EmployeeTable WHERE empname='" + comboBox1.Text + "' ;";

    SqlConnection conn = new SqlConnection(Connection);
    SqlCommand cmd = new SqlCommand(Query, conn);

    conn.Open();
    SqlDataReader reader = cmd.ExecuteReader();

    while (reader.Read())     
    {
        textBoxEmpName.Text = reader["EmpName"].ToString();
    }
}
4b9b3361

Ответ 1

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

SELECT * FROM  EmployeeTable WHERE CONVERT(VARCHAR, empname) = '" + comboBox1.Text + "' ;";

Всегда используйте параметры

SELECT * FROM  EmployeeTable WHERE CONVERT(VARCHAR, empname) = @comboBox";

Ответ 2

Попробуйте использовать VARCHAR (MAX), если размер целевой строки недостаточно велик для представления экземпляра XML.

CONVERT(VARCHAR(MAX), empname)

Ответ 4

Код должен быть:

Select * from EmployeeTable Where Cast(empname as varchar(max)) = @combobox