Shaddow>dark Ответов: 1

Моя ошибка говорит примерно так (преобразование из строки "dept_id" в тип "boolean" недопустимо) любые решения, пожалуйста


Private Sub dept_num_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dept_num.TextChanged
        Dim con As SqlConnection = New SqlConnection("Data Source=S-MHAMEED\SQL2008RTWO;Initial Catalog=comp.task;User ID=...;Password=....")
        Using (con)
            Dim sqlCom As New SqlCommand()
            sqlCom.Connection = con
            sqlCom.CommandText = "Sel_dept"
            sqlCom.CommandType = CommandType.StoredProcedure
            Dim Dept_id As Boolean

            con.Open()
            Integer.TryParse(dept_num.Text, Dept_id)
            sqlCom.Parameters.AddWithValue("Dept_Id", Integer.Parse(dept_num.Text))

            'Dept_id = Convert.ToInt32(sqlCom.ExecuteScalar)
            If ("Dept_id") = False Then
                MessageBox.Show("your new record")
            End If
        End Using
    End Sub
End Class


Что я уже пробовал:

я просто не знаю пожалуйста помогите
Преобразование из строки "Dept_id" в тип "Boolean" недопустимо

Richard MacCutchan

Вы не можете сравнить строку символов с логическим значением, это не имеет смысла. Это все равно что сказать: if an apple = four o'clock.

1 Ответов

Рейтинг:
9

Wendelius

Сравнение здесь

If ("Dept_id") = False Then

Выглядеть странно. Вы пытаетесь сравнить текст с логическим значением.

Основываясь на комментируемом коде, вы пытаетесь выяснить, успешно ли выполнено выполнение. Возвращает ли процедура новое значение отдела. Если это так, сохраните его в переменной и с помощью обработки ошибок (try...catch) убедитесь, что выполнение выполнено успешно.

Я считаю, что прохождение этого урока может вам помочь: Правильное выполнение операций с базой данных[^]


Shaddow>dark

Ты можешь анализировать правильное решение для этого я буду благодарен

Wendelius

Что вы пытаетесь сравнить в своем коде?

Shaddow>dark

???

Shaddow>dark

в этом коде у меня есть 3 текстовых поля и у меня есть кнопка с решеткой вид и я активировал максимальное количество для управления текстовое поле, что я собираюсь сказать, знаю то, что я хочу, я хочу, чтобы когда я вставляю номер отдела я хочу, чтобы дать все подробности о нем в других текстовых полей и я хочу я тоже хочу не допустить повторения в
идентификатор отдела ?>> & gt;??> Вот и все

Shaddow>dark

1 _ я хочу, чтобы он дал мне детали, когда я вставляю идентификатор отдела, дайте мне все детали в других текстовых полях >>>>>> & gt;;

2 _ я хочу предотвратить дубликат в идентификаторе отдела, когда я вставляю идентификатор отдела, понял ???

Wendelius

Чтобы предотвратить дубликаты, не пытайтесь сделать это в своем коде, вместо этого используйте ограничения в своей базе данных. В этом случае используйте уникальное ограничение: Создание Уникальных Ограничений | Microsoft Docs[^].

Что же касается возвращаемого значения, то если процедура возвращает целое число, то ваш код может выглядеть примерно так

Dim Dept_id Как Целое Число
....
Dept_id = Конвертировать.ToInt32(sqlCom.Executescalar так)
...

Обработка ошибок (try catch) должна позаботиться об ошибках, например, если вы столкнулись с дубликатом и если процедура успешно выполнена, вы можете просто использовать значение, возвращенное из процедуры.