У меня есть поле даты в моей базе данных, которое устанавливается, когда клиент настроен на неактивность, когда пользователь нажимает кнопку, чтобы отключить их. У меня возникли проблемы с попыткой выяснить, как очистить неактивную дату, когда пользователь пытается реагировать на клиента.Установка даты NULL
Это то, что код кнопки Деактивировать выглядит следующим образом:
Private Sub btnDeactivate_Click(sender As System.Object, e As EventArgs) Handles btnDeactivate.Click
Dim selectedCustomers = GetSelectedCustomers()
Dim newInActiveFlag = Not selectedCustomers.Any(Function(c) (c.Inactive_Flag = "Y"))
Dim activateWord = "Activate"
If newInActiveFlag Then
activateWord = "Deactivate"
End If
Dim result As DialogResult = MessageBox.Show(String.Format("Are you sure you want to {0} this Customer?", activateWord.ToLower()), activateWord + " Customer", _
MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = Windows.Forms.DialogResult.Yes Then
Dim selectedCustomerIds = selectedCustomers.Select(Function(c) (c.Cust_Num))
Dim service = New DataService()
service.Customers.SetInactiveFlags(selectedCustomerIds, newInActiveFlag)
service.SaveChanges()
PerformSearch(_lastSearchTxt, _lastIncludeActive)
End If
End Sub
Вот часть, где он устанавливает неактивный флаг и дата:
Public Sub SetInactiveFlags(custIds As IEnumerable(Of Integer), inactiveFlag As Boolean)
Dim customers As List(Of Customer)
customers = _context.Customers.Where(Function(c) (custIds.Contains(c.Cust_Num))).ToList()
For Each customer As Customer In customers
customer.Inactive_Flag = CreateFromBoolean(inactiveFlag)
customer.Inactive_Date = DateTime.Today
Next
End Sub
Можно ли иметь один и тот же набор кнопок и удалить дату так же, как я установил ее и удалить флаг неактивности?
благодаря
Мы не можем знать свойства в вашем классе Клиенты. Но код кажется прекрасным в случае наличия только двух свойств (Inactive_Flag и Inactive_Date); в случае наличия большего количества свойств (разные для Неактивных и для Активных), вы должны соответственно изменить SetInactiveFlags. Не могли бы вы объяснить, какая именно проблема у вас сейчас? Как вы должны установить/удалить неактивный флаг? Почему ваш код работает не так, как ожидалось? – varocarbas
Проблема, с которой я столкнулся, заключается в том, что когда я иду активировать клиента, он не очищает неактивную дату, а вместо этого вставляет дату, в которую он был реактивирован. Чтобы установить/удалить неактивный флаг, я использую одну кнопку, текст которой меняет форму «Деактивировать» на «Активировать» в зависимости от наличия «Y» или «N» в поле Inactive_Flag и соответственно изменяет значение. –
Вы просто хотите ввести другую дату, когда она деактивируется? Это легко, просто следуйте советам Тома (установите тип даты с нулевым значением и просто передайте Nothing при деактивации через условие в SetInactiveFlags или аргументе, как было предложено Томом); или создать «крайнюю дату» (например, 1-1-1900), которая будет использоваться для дезактивированных случаев, снова через условие/аргумент в SetInactiveFlags. – varocarbas