NebroProg Ответов: 3

Как преобразовать combobox1. selectedvalue в строку


У меня есть две таблицы, tbl1 имеет первичный ключ со строкой, tbl2 имеет внешний ключ к этому первичному ключу, когда я пытаюсь вставить в tbl2 значение из combobox.Выбранное значение
произошла эта ошибка
Преобразование не удалось при преобразовании значения nvarchar 'FMCS17002' в тип данных int.

Я стараюсь использовать
CmbStudents.SelectedValue.ToString()
but not working 
and CmbStudents.SelectedItem
also not Working
Thank's ,,,

What I have tried:

cmd = New SqlCommand("insert into SupervisionAndExaminer values(@p1, @p2, @p3)", SqlSeverDB)

            cmd.Parameters.AddWithValue("@p1", CmbStudents.SelectedValue)
            cmd.Parameters.AddWithValue("@p2", CmbInstructorss.SelectedValue)
            cmd.Parameters.AddWithValue("@p3", CmbStudents.SelectedValue)
            cmd.ExecuteNonQuery()

CHill60

Ошибка исходит от вашей команды sql. У вас должен быть столбец, определенный как int и вы пытаетесь вставить значение 'FMCS17002'.
Либо разберите целое число из этого текста, либо измените тип столбца в базе данных. Я не могу дать вам дальнейших советов, так как мы ничего не знаем о вашей таблице или данных, которые вы пытаетесь ввести

3 Ответов

Рейтинг:
2

Jochen Arndt

Ошибка заключается в следующем

Conversion failed when converting the nvarchar value 'FMCS17002' to data type int
Итак, вам не нужна строка (что SelectedValue уже есть в вашем случае), но целое число. По крайней мере одно из полей базы данных, которое вы пытаетесь установить, имеет тип int а строковое значение "FMCS17002" не может быть преобразовано в целое число.

Таким образом, вы должны изменить базу данных, чтобы использовать строки (NVARCHAR) для соответствующих полей или измените поля со списком так, чтобы они содержали только целые числа (или строки, представляющие допустимые целые числа, чтобы их можно было преобразовать).

[РЕДАКТИРОВАТЬ]
Вопрос был изменен после публикации моего решения:
Цитата:
У меня есть две таблицы, tbl1 имеет первичный ключ со строкой, tbl2 имеет внешний ключ к этому первичному ключу, когда я пытаюсь вставить в tbl2 значение из combobox.Выбранное значение
Сначала вы должны запросить идентификатор из tbl1, используя соответствующую строку поля со списком:
SELECT id FROM tbl1 WHERE name=selected_value
и передайте возвращенный идентификатор в качестве параметра INSERT команда.
[/РЕДАКТИРОВАТЬ]


Рейтинг:
0

Nirav Prabtani

Столбец, в который вы вводите значения, имеет тип данных integer

Убедитесь, что вы предоставляете данные в соответствии с типом данных столбца таблицы.

Если вы хотите добавить "FMCS17002", то вам нужно установить тип данных varchar(30), где 30-длина символа, вы можете установить длину в соответствии с вашими потребностями, я только что установил, например.

Вы не можете вставить это значение в виде целого числа.

Надеюсь, вы меня поняли.


Рейтинг:
0

NebroProg

Спасибо вам, друзья мои ^^
ошибка в моем коде я меняю позиции комбо-боксов и повторяю

CmbStudents.SelectedValue

и есть еще одна ошибка в функции, которая заполняет мой combobox
Проблема была решена ^^