Как вывести значение в textbox из свойства, в котором сохраняются данные?

Всем привет!
При входе в БД у меня есть форма, с помощью которой я задаю параметры отбора (указываю данные).
У меня есть два текстбокса: Дата С и ПО. После входа в БД я могу поменять параметры отбора, вызвав снова эту форму, как мне сделать, чтобы при повторном открытии формы в текстбоксах дат (С и ПО) были данные, которые вводились крайний раз??? Даты записываются в свойствах DATE_D_ и END_ т.е. в самом интерфейсе даты которые я вводил крайний раз запоминаются с помощью команды Cursor.Properties.Set, как их теперь вывести?
Пытался вставить в условие что-то вроде: если Cursor.Properties.Contains(“DATE_D”) - проверяет есть ли запись в свойстве, то Cursor.Properties.Get - взять это свойство, не получается так …
т.е. по сути, если в свойствах есть запись - вставить эти даты в текстбокс, иначе - вставить первый и последний день текущего месяца.

public class PwregCursor : DataEditorBusinessLogic.CursorLogic
{
    public override SqlCmdText GetSqlFilter()
    {
        var Cond = ITnet2.Server.Dialogs.InputForm.Activate("_TESTFRM");
        if (Cond.Success)
        {
            string Conditions = "";
            // условие по дате C 
            var date_begin = Cond.InputFormValues.GetValue<DateTime>("DATE_D");
            Cursor.Properties.Set("DATE_D_", date_begin);  // запись значений данных в свойство
            if (date_begin != null)
            {
                Conditions += " cast(PWREG.DATE_D as date) >= cast(@date_begin as date) ";
            }
            // условие по дате ПО
            var date_end = Cond.InputFormValues.GetValue<DateTime>("END");
            Cursor.Properties.Set("END_", date_end);    // запись значений данных в свойство
            if (date_end != null)
            {
                Conditions += "and cast(PWREG.DATE_D as date) <= cast(@date_end as date)";
            }
            var n_kdk = Cond.InputFormValues.GetValue<string>("N_KDK");
            var rcentr = Cond.InputFormValues.GetValue<string>("RCENTR");
            var ceh = Cond.InputFormValues.GetValue<string>("CEH");
            // условие по сотруднику
            if (n_kdk != null && n_kdk.Length > 0)
            {
                Conditions += " and PWREG.N_KDK = @n_kdk ";
            }
            // условие по рабочему центру
            if (rcentr != null && rcentr.Length > 0)
            {
                Conditions += " and PWREG.RCENTR = @rcentr ";
            }
            // условие по цеху
            if (ceh != null && ceh.Length > 0)
            {
                Conditions += " and PRCR.CEH = @ceh ";
            }
            return new SqlCmdText(string.Format(Conditions),
                new SqlParam("n_kdk", n_kdk.ToString()),
                new SqlParam("rcentr", rcentr.ToString()),
                new SqlParam("ceh", ceh.ToString()),
                new SqlParam("date_begin", date_begin),
                new SqlParam("date_end", date_end));
        }
    }
}

Это винформс?

это откуда?

@AlexP Это, я так понимаю, вебформс … Сие действие происходит в программе it-enterprise, аналог 1с, отсюда и DataEditorBusinessLogic.CursorLogic

Добавил следующий код в саму форму (т.е. при открытии этой формы, а не при заходе в БД) и у меня при открытии формы теперь выходят даты первого и последнего дня текущего месяца, уже хорошо

public class _Testfrm : _TestfrmBase

{
    protected override void ScreenWhen()
    {
        _date_D.Value = Date.FirstDateOfMonth(Settings.DateNow);
        _end.Value = Date.LastDateOfMonth(Settings.DateNow);
    }
}

Попробовал сделать условие, выходит ошибка System.NullReferenceException: Object reference not set to an instance of an object.

protected override void ScreenWhen()
    {
        if (Cursor.Properties.Contains("DATE_D_") || Cursor.Properties.Contains("END_"))
        {
            _date_D.Value = Cursor.Properties.Get<DateTime>("DATE_D_");
            _end.Value = Cursor.Properties.Get<DateTime>("END_");
        }
        else
             Date.FirstDateOfMonth(Settings.DateNow);
             Date.FirstDateOfMonth(Settings.DateNow);
    }

Наверно надо &&, или для каждого if и по одному устанавливать.

и внизу пропущено

@AlexP
Я поставил || т.к. у меня обе даты обязательны к заполнению, исключено что будет заполнено что-то одно
Да, внизу добавил, особо ничего не меняет, ошибка та же)

Тогда можно убрать || и вторую часть вообще )

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

Где именно? null что, Cursor?

Где именно? null что, Cursor?

Не совсем понял вопроса, ошибка эта выходит при открытии формы


если я нажму ОК то открывается просто форма дальше и выполняет все условия что я впишу
image

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

В нормальном .NET можно посмотреть исключение полностью, там будет номер строки с кодом и т.д.

Может быть на вкладке “Отладка C#” что-то есть :man_shrugging:

Ну или хотя бы найти возможность добавить отладочный вывод — вывести куда-нибудь этот курсор, типа Debug.Write(Cursor).

И читать документацию если есть, как с этим курсором работать, где и когда он доступен.

Может быть на вкладке “Отладка C#” что-то есть :man_shrugging:

пусто там, надо вводить команду)

сложно-сложно) буду искать ответ дальше, спасибо)