Как заполнить диапазон дат в столбце, используя два dateTimePickers? - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужно заполнить диапазон дат в столбце, используя SQL Server, WinForms и два DateTimePickers.Первый DateTimePicker является начальной датой диапазона, а второй - конечной датой диапазона, и в столбец должны быть вставлены все даты, которые включаются между датой, выбранной в первом DateTimePicker, и вторым DateTimePicker.

Я уже пытался реализовать его, используя код, показанный ниже, но он не работает:

private void button1_Click(object sender, EventArgs e)
    {
        using (SqlConnection con = new SqlConnection(@"Data Source =.\SQLEXPRESS01; Initial Catalog = Vagtplan; Integrated Security = True"))

        {
            DateTime startDate = dateTimePicker1.Value;
            DateTime finishDate = dateTimePicker2.Value;
            DateTime finishDate1 = finishDate.AddDays(+1);
            DateTime countDate = dateTimePicker1.Value;

           while (!countDate.ToString().Equals(finishDate1.ToString()));
                {
                    if ((countDate.DayOfWeek == DayOfWeek.Monday) | (countDate.DayOfWeek == DayOfWeek.Tuesday) 
                        | (countDate.DayOfWeek == DayOfWeek.Wednesday) | (countDate.DayOfWeek == DayOfWeek.Thursday)
                        | (countDate.DayOfWeek == DayOfWeek.Friday) | (countDate.DayOfWeek == DayOfWeek.Saturday) | (countDate.DayOfWeek == DayOfWeek.Sunday))
                    {
                        SqlCommand command = new SqlCommand("INSERT INTO [Vagter] ([Dato]) VALUES ('" + countDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')", con);
                        con.Open();
                        command.ExecuteNonQuery();
                        con.Close();
                    }
                    countDate = countDate.AddDays(1.0);
                }

                MessageBox.Show("Vagtplanen er oprettet");

        }



    }

Ожидаемый результат - заполнение всех дат между датой, выбранной в первом DateTimePicker, и датой.выбрал во втором DateTimePicker, в столбце.Прямо сейчас ничего не происходит.Теперь ошибки отображаются, просто ничего.

1 Ответ

0 голосов
/ 25 апреля 2019

Проблема - точка с запятой в конце строки с while. Просто удали его.

Поскольку у вас есть точка с запятой, код внутри скобок не будет выполняться, и цикл будет выполняться повторно.

Заменить:

while (!countDate.ToString().Equals(finishDate1.ToString()));

С:

while (!countDate.ToString().Equals(finishDate1.ToString()))
...