Saadbinata Ответов: 2

Флажок для извлечения


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

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

if Rs("медицинский").Значение = " Да "или" да", то
CheckBox1.Проверено = Истина
Ещё
CheckBox1.Проверено = Ложь
Конец, Если

Michael_Davies

Почти уверен, что флажок.Checked принимает "да" как истину и" нет " как ложь, поэтому вы можете непосредственно присвоить это значение:

CheckBox1. Checked = Rs ("Медицинский").Ценность

Saadbinata

If Rs("Медицинский").Значение = "да", то
CheckBox1. Checked = Rs ("Медицинский").Ценность
Ещё
CheckBox1.Проверено = Ложь
Конец, Если

при использовании такого формата он не показывал никакой ошибки,но и не показывал в чекбоксе галочку. ничего не происходит.

Peter Leow

Вы даже не уверены, "да"или " да"? Сначала вы должны выяснить, какие фактические значения записаны в таблице базы данных.

Saadbinata

Я использую "да "или" Да", потому что в базе данных некоторые из них находятся в форме" да", а некоторые-в формате" да". означает оператор ввода данных, введенный в таком формате. и я новичок в vb.net

Dave Kreskowiak

Очевидно, вы также новичок в проверке данных. Вы никогда не помещаете непроверенные данные в базу данных в том формате, который вы сейчас разрешаете. Что делать, если пользователь ввел "да"? Ваш код уже потерпел неудачу.

Если поле может иметь только значение " Да " или "нет", оно напрямую сопоставляется с логическим значением, которое может иметь только значение "истина" или "ложь". Вы должны были обработать и сопоставить это да или нет с логическим значением true/false и сохранить его вместо этого. Я не знаю, почему вы позволяете пользователю вручную вводить " да " или "нет", когда было бы более уместно использовать выпадающий список.

Saadbinata

Конечно, я сделаю то же самое, но в это время, когда мне причитается зарплата, мне нужно облегчить этот процесс. Спасибо за такое хорошее предложение. это уже у меня в голове, чтобы сделать это с помощью boolean, и я должен держать контроль в руках.

Richard MacCutchan

Почему вы используете строки, а не логические типы?

Saadbinata

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

Richard MacCutchan

- Какая проблема? Вы не сказали нам, что не работает.

Saadbinata

Michael_Davies предлагает мне этот кодовый код Rs ("медицинский").Значение = "да", то
CheckBox1. Checked = Rs ("Медицинский").Ценность
Ещё
CheckBox1.Проверено = Ложь
Конец, Если
но это также не работает означает, что когда я получаю значение поля в базе данных, которое является "да", это означает, что когда я показываю его на форме данных, флажок будет установлен, но он не установлен. с этим кодом ошибка не появляется.

Saadbinata

он показывает ошибку, что строка не конвертируется в задаче логического приведения

Ralf Meier

Попробуйте мое решение (например, опубликованное мной) - но без каких-либо других инструкций ...

Saadbinata

значит вот этот

CheckBox1.Проверено = (РС("Медицина").Ценность.toLower = " да")


без оператора if. Непосредственно

Ralf Meier

Попытка :
CheckBox1.Проверено = (РС("Медицина").Ценность.метод toString.toLower = " да")

Но мое решение все еще работает - но теперь я изменил его ...

Saadbinata

Если CheckBox1.Проверено = (РС("Медицина").Ценность.Метод toString.ToLower = " да") Затем
CheckBox1.Проверено = Истина
Ещё
CheckBox1.Проверено = Ложь
Конец, Если

Спасибо, сэр, оно будет работать

2 Ответов

Рейтинг:
6

Peter Leow

Вместо

if Rs("Medical").Value = "Yes" Or "yes" Then
так и должно быть
If Rs("Medical").Value = "Yes" Or Rs("Medical").Value = "yes" Then

Если это возможно, вы должны очистить базу данных.
Как минимум, попробуйте найти тот скрипт, который отвечает за вставку таких расплывчатых значений, и сделать его правильным.
Удачи.
++ + + + [раунд 2]+++++
Основываясь на вашем отзыве, он вводится некоторыми сотрудниками ввода данных в свободной текстовой форме, тогда удачи вам, это может оказаться "да", "    да", " да    ", ...прием. Ты понял?
В таких случаях можно обрезать значение и посмотреть, как оно получится:
Rs("Medical").Value.Trim()

В крайнем случае, по сути, это должно быть самое первое, проверить значение Rs ("медицинский").Стоимости через Визуальный Основной .Чистая отладки[^].


Saadbinata

If Rs("Медицинский").Значение = "Да"Или Rs ("Медицинский").Значение = "да", то

это также имеет тот же результат.
очистить базу данных невозможно. потому что мой босс выгнал мужчин с моей работы

Saadbinata

спасибо за Вашу поддержку в решении моей проблемы теперь у меня есть такой код который решил мою проблему
If Rs("Медицинский").Ценность.Метод toString.Тогда Trim = "yes"
CheckBox1.Проверено = Истина
Ещё
CheckBox1.Проверено = Ложь
Конец, Если
ваша подсказка заключается в добавлении в мой код

Рейтинг:
17

Ralf Meier

вы также можете написать :

CheckBox1.Checked = (Rs("Medical").Value.toString.toLower = "yes") 


Это была твоя проблема ?..


Saadbinata

If Rs("Медицинский").Значение = "да", то
CheckBox1.Проверено = (РС("Медицина").Ценность.toLower = " да")
Ещё
CheckBox1.Проверено = Ложь
Конец, Если

Сэр, он тоже не работает,
Мне нужно показать значение поля Medical в базе данных, которое является yes, и мне нужно показать это значение, как на флажке в проверенной форме.

Saadbinata

Если CheckBox1.Проверено = (РС("Медицина").Ценность.Метод toString.ToLower = " да") Затем
CheckBox1.Проверено = Истина
Ещё
CheckBox1.Проверено = Ложь
Конец, Если

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

Saadbinata

Уважаемый Сэр Ральф Мейер. Спасибо Вам за ваш ответ, теперь я установил свой код таким образом с вашей помощью, и он работает правильно.

If Rs("Медицинский").Ценность.Метод toString.Тогда Trim = "yes"
CheckBox1.Проверено = Истина
Ещё
CheckBox1.Проверено = Ложь
Конец, Если

Еще раз спасибо.

Ralf Meier

Хорошо, если это работает ... но код из моего решения тоже должен работать - точно так же, как я написал.

Возможно, вы взглянете на него еще раз ... и посмотрите вместе с отладчиком, если что-то пойдет не так, и если да, то что пойдет не так. Тогда мы оба могли бы пройти эту ошибку.
Но только если вы хотите ;)