Рейтинг:
9
Maciej Los
Если я вас хорошо понимаю...
База данных MS Access не поддерживает повторение запросов. Вы должны написать метод, как показано ниже:
Dim startDate As Date = Date.Today()
Dim endDate As Date = startDate.AddDays(15)
Dim currDate As Date = startDate
Do While (currDate < endDate)
Console.WriteLine("INSERT INTO TableName (StartDate, EndDate) VALUES ({0}, {1})", currDate, endDate)
currDate = currDate.AddDays(1)
Loop
Как вы можете видеть, я использую
Делать... Петля[
^] оператор для циклического перебора дат.
Member 11385046
Спасибо,
Я пытался заменить консоль.Команда Writeline с командами Oledb.
Он не работает и выдает ошибку : http://i.imgur.com/WqB1k3v.png
Есть ли какой-нибудь способ решить эту проблему ?
Руководство По Публичному Классу
Private Sub Manual_Load(отправитель как система.Объект, как система.EventArgs) Обрабатывает MyBase.Load
'Команды и соединения
Dim con как новый OleDb.OleDbConnection
Дим УМК как нового oledb для.Объект oledbcommand
Dim Sql Как Строка
против.Параметр ConnectionString = "Поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=с:\TonesToDoList\1tabel1.# то # "
против.Открыть()
-Повторение
Дим начальная дата как дата = дата.Сегодня()
Дим конечная дата как дата = начальная дата.AddDays(15)
Dim currDate As Date = startDate
Do While (currDate < endDate)
Sql = ("вставить в tblManual (StartDate, EndDate)" & "значения ({0}, {1})", currDate, endDate)
УМК.Метод executenonquery()
currDate = currDate.AddDays(1)
Петля
против.Закрывать()
Конец Подводной Лодки
End Класса
Maciej Los
Заменить этот: Sql = ("INSERT INTO tblManual (StartDate, EndDate)" & "VALUES ({0}, {1})", currDate, endDate)
с: Sql = String.Format("INSERT INTO tblManual (StartDate, EndDate) VALUES (#{0}#, #{1}#)", currDate, endDate)
Member 11385046
Текущий код ничего не добавляет в базу данных. Однако код работает без ошибок.
Общественного Класса Form1
Private Sub Recurrence_Click(отправитель как система.Объект, как система.EventArgs) Обрабатывает Повторение.Щелчок
-Делкаререн
Тусклый cnnRecurrence как новый OleDb.OleDbConnection
Dim scmdRecurrence как новая команда OleDb.Oledb
Dim SQL как строка
'Параметр connectionString
cnnRecurrence.ConnectionString = My.Settings._1tabel1ConnectionString
scmdRecurrence.Соединение = cnnRecurrence
cnnRecurrence.Открыть()
-Повторение
Дим начальная дата как дата = дата.Сегодня()
Дим конечная дата как дата = начальная дата.AddDays(15)
Dim currDate As Date = startDate
Do While (currDate < endDate)
SQL = строка.Формат("вставить в tblManual (StartDate, EndDate) значения (#{0}#, #{1}#)", currDate, endDate)
currDate = currDate.AddDays(1)
Петля
cnnRecurrence.Закрывать()
Конец Подводной Лодки
End Класса
Maciej Los
Потому что ты никогда не звонишь: 'REM: after SQL = String.Format("...")
scmdRecurrence.CommandText = SQL
scmdRecurrence.ExecuteNonQuery()
'REM: before currDate = ....
:)
Member 11385046
Спасибо ,это удачно ! Итак, это для ежедневных случаев, так как же мне добавить ежемесячные/еженедельные/ежегодные события?
Maciej Los
Используйте ту же логику и значение datetime.Метод AddMonth() [^] и-или AddYears()
метод ;)
Пожалуйста, примите мой ответ (зеленая кнопка) - формально, чтобы удалить ваш вопрос из списка без ответа.
Bartt_dmr
Пожалуйста, помогите мне.
Я адаптировал приведенный выше пример к asp.net (vb), но он записывает ту же дату.
Пример: с 08/01/2019 по 31.08.2019, интервал 7 дней.
Правильным было бы записать 08/01 ... 08/08 ... 15/08 ... 22/08 ... 29/08 ... Но записал эти 5 дней как 01/08.
Следует коду и заранее благодарит.
Dim conexao как SqlConnection
Dim cmd как SqlCommand
Dim sql как строка
Дим начальная дата как дата = txtDataCurso.Текст
Dim endDate As Date = startDate.AddDays(txtIntervalo.Text) - "этот интервал представляет собой количество дней (конечная дата - начальная)"
Dim currDate As Date = startDate
Do While (currDate < endDate)
sql = "вставить в tre_Eventos (Id_Curso, DataEvento) значения ('" & ddlCursos.SelectedValue &ампер; "', '" &амп; конечная дата &усилителя; "')"
currDate = currDate.AddDays(7)
Попробуй
conexao = новый SqlConnection(strConn)
conexao.Открыть()
cmd = New SqlCommand(sql, conexao)
УМК.Метод executenonquery()
conexao.Закрывать()
SetFocus(Label1)
Метка1.Видимое = Истинное
Этикетка 1.Text = "Evento Cadastrado com Sucesso"
Поймать
SetFocus(Label1)
Метка1.Видимое = Истинное
Этикетка 1.Текст = "Ocorreu um erro!" + Err.описание
Конец Попытки