Member 14127874 Ответов: 1

Как сохранить флажки, которые проверяются?


Теперь он сохраняется, если установлен флажок 1, но если установлено 2 флажка, то на выходе отображается только 1 значение. Спасибо

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

Dim chcboxes() As CheckBox = {CheckBox1, CheckBox2, CheckBox3}

For i As Integer = 0 To chcboxes.Length - 1

 If (chcboxes(i).CheckState = CheckState.Checked = True) Then
       i += 1
            cmd.CommandText = "insert into array(array) values ( @array)"
            cmd.Parameters.AddWithValue("@array", i)
            cmd.ExecuteNonQuery()
        End If
    Next

Bryian Tan

Где находится код, выполняющий отображение?

Member 14127874

Я его туда не включаю.

Bryian Tan

Правильно ли был вставлен выбранный флажок в таблицу?

Member 14127874

Да
Я хочу, чтобы выход был таким, как checkbox1 = 1, chekbox2=2 и так далее.


checkbox1-1
checkbox2-2

Member 14127874

Отображение моего кода

флажок 1 - 1 2. Это неправильно. Так и должно быть.

Checkbox1-1
Checkbox1-2

Ralf Meier

Какой в этом смысл :
'If (chcboxes(i).Состояния Checkstate = Состояния Checkstate.Проверено = True), То ...'
вы действительно не могли бы сделать такую "двойную проверку"-код должен быть :
'If (chcboxes(i).Состояния Checkstate = Состояния Checkstate.Проверен) Затем ...'

Member 14127874

Я уже убрал слово "правда".

Member 14127874

Вывод неверен. Мне нужна помощь.

Richard MacCutchan

Пожалуйста, отредактируйте свой вопрос (используйте Улучшить вопрос ссылка выше), а также добавить полную информацию о том, что это за проблема и где она возникает.

F-ES Sitecore

"i += 1"

Эта строка заставляет ваш цикл пропускать элемент в вашем массиве, вы, вероятно, хотите удалить его.

Member 14127874

Попробуй
Dim con As New SqlClient.SqlConnection("источник данных=DESKTOP-9NE9FIF\SQLEXPRESS;начальный каталог=Sample1;Интегрированная безопасность=True")
Dim cmd как новая команда SqlCommand()


УМК.Подключение = кон

против.Открыть()

Dim str, str1 как строка
ул = ""
str1 выглядит следующим образом = ""

Если CheckBox1.Checked = True, То
ул. &ампер;= Метка1.Текст
str &= " "

Конец, Если

Если CheckBox2.Checked = True, То
ул. &ампер;= Метка2.Текст
str &= " "


Конец, Если
Если Отображения Checkbox3.Проверено = Истина Тогда
ул. &ампер;= Метка3.Текст
str &= " "

Конец, Если
Если CheckBox4.Checked = True, То
ул. &ампер;= Label4.Текст
str &= " "


Конец, Если

Если str <> ничего тогда
MsgBox("запись успешно сохранена!", MsgBoxStyle.Информация, "Успех")
Конец, Если
Dim chcboxes() As CheckBox = {CheckBox1, CheckBox2, CheckBox3, CheckBox4}
Для i как целое число = 0 для chcboxes.Длина - 1
If (chcboxes(i).Состояния Checkstate = Состояния Checkstate.Проверен) Затем
УМК.CommandText = "вставить в array_tbl1(array_id1) значения ( @arrayid1)"
cmd.параметры.AddWithValue("@arrayid1", str)
УМК.Метод executenonquery()

Конец, Если

Следующий


Поймать ex как исключение
'(напр.сообщение)

Member 14127874

Это мой новый код.

Если я нажму checkbox1, то это будет иметь значение label1 = 10. Он будет сохранен, но если я нажму checkbox1 и checkbox2, он отобразит только значение label1.

Мне нужен выход

10
20

не 10 20

Ralf Meier

измените свой код на :

Если CheckBox1.Checked, То
str &= Label1.Текст + "" + vbCrLf
Конец, Если

.. а также все остальные ... это также можно сделать в цикле ...

Ralf Meier

... и нажмите ответ в соответствии с заданным комментарием / ответом - тогда ответчик будет уведомлен

1 Ответов

Рейтинг:
10

ErrorMadness

Попробуй Вот Это :

Вы должны поместить все свои флажки в контейнер управления, как панель, здесь я использовал панель.

Dim ChckboxValue As String

        For Each Control In Panel1.Controls
            If TypeOf Control Is CheckBox Then
                If CType(Control, CheckBox).Checked Then
                    ChckboxValue = CType(Control, CheckBox).Text
/*--------------- P U T  Y O U R  Q U E R Y H E R E ------------*/
                End If
            End If
        Next


Поместите свой запрос в цикл. В этом коде вам не нужно объявлять флажки внутри массива.


ErrorMadness

https://www.codeproject.com/Answers/1275600/How-to-save-checkbox-in-SQL-server#answer1

CHill60

Почему флажки должны быть на панели? Форма может быть контейнером

ErrorMadness

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