2015-05-06 3 views
0

В настоящее время я делаю программу мероприятий в VB.NET, где пользователь может добавлять ежедневные/еженедельные/ежемесячные/ежегодные события в базу данных. Их два варианта: -Добавление появления x раз в StartDate. (http://i.imgur.com/LiRrZYy.png[ ^]) -Добавление события между StartDate и EndDate. (http://i.imgur.com/gC6bcSt.png[ ^]) Когда я добавляю недели от 2 апреля до 29 из мая/2 апреля x раз, он генерирует в нем некоторые случайные значения. Есть ли способ исправить это? Это мой код:Добавить неделю до даты vb.net

Case rbnWeekly.Checked 'Weekly mode with Enddate and StartDate 
       If rbnStartEnd.Checked = True Then 
        Dim startDate As Date = dtpStartDate.Text 
        Dim endDate As Date = dtpEndDate.Text 
        Dim currDate As Date = startDate 
        Do While (currDate < endDate) 
         SQL = String.Format("INSERT INTO tblManual (StartDate, EndDate, UniqueID) VALUES (#{0}#, #{1}#, '{2}')", currDate, endDate, id) 
         scmdRecurrence.CommandText = SQL 
         Valueee += 1 
         scmdRecurrence.ExecuteNonQuery() 
         currDate = currDate.AddDays(7) 
        Loop 
        MsgBox(Valueee.ToString & " records toegevoegd") 
       Else 'Weekly mode with x times 
        Dim aantal As Integer = txtHerhaling.Text 
        Dim startDate As Date = Date.Today 
        Dim endDate As Date = startDate.AddDays(aantal * 7) 
        Dim currDate As Date = startDate 
        Do While (currDate < endDate) 
         SQL = String.Format("INSERT INTO tblManual (StartDate, EndDate, UniqueID) VALUES (#{0}#, #{1}#, '{2}')", currDate, endDate, id) 
         scmdRecurrence.CommandText = SQL 
         Valueee += 1 
         scmdRecurrence.ExecuteNonQuery() 
         currDate = currDate.AddDays(7) 
        Loop 
        MsgBox(Valueee.ToString & " records toegevoegd") 
       End If 
+0

Также см стандартные предупреждения о избежать SQL Injection с помощью параметров SQL , –

ответ

1

В SQL, необходимо правильно отформатированные строки выражения для значения дат, которые будут вставлены:

.. , currDate.ToString("yyyy'/'MM'/'dd"), endDate.ToString("yyyy'/'MM'/'dd"), id) 
+0

Большое спасибо, но у меня есть еще один вопрос, если я смотрю в базу данных, он не сохраняет его как формат «yyyy/MM/dd», а как значение «dd/MM/yyyy», почему он это делает? –

+0

Сохраняет его как значение даты и времени. У этого нет формата. Формат предназначен только для отображения. Если формат не указан, используются настройки по умолчанию для Windows. – Gustav

Смежные вопросы