Я в растерянности и искал повсюду, чтобы понять, как сделать это так, как я понимаю, но все же не повезло. Я пытаюсь показать время, когда клиент свободен, и что запланировано на ежедневной основе. Их расписание хранится на сервере и показывает их занятое время. Я извлек эти данные с помощью SQL-запроса и поместил их в таблицу данных с именем dtSched. Затем я создал еще одну таблицу данных под названием dtTime, чтобы перечислить время с 6:00 до 22:00 с шагом 15 минут. То, что я сейчас пытаюсь сделать, это объединить обе таблицы данных, чтобы отобразить все время, указанное в dtTime, и отобразить, где у клиента запланировано время, поэтому я могу отображать пустые строки, позволяющие добавлять встречи, и отображать запланированное время, поэтому встречи не добавляются временной интервал.
Вот мой код для создания таблицы dtTime (все время):
Dim strStartDate As DateTime
Dim strEndDate As DateTime
strStartDate = DateValue(Now()) & " 6:00 AM"
strEndDate = DateValue(Now()) & " 10:00 PM"
While strStartDate <= strEndDate
strStartDate = strStartDate.AddMinutes(15)
Dim dr As System.Data.DataRow = dt.NewRow()
dr("Time") = strStartDate
dt.Rows.Add(dr)
End While
Вот мой источник данных dtSched, полученный из sql (запланированное время):
Dim conn = New SqlConnection("Connection")
Dim strSQL As String
strSQL = "SELECT * FROM MYTABLE WHERE SCHED DATE = 'Date'"
Me.dataAdapter = New SqlDataAdapter(strSQL, conn)
Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapter)
Dim dtSched As New DataTable()
dtSched.Locale = System.Globalization.CultureInfo.InvariantCulture
Me.dataAdapter.Fill(dtSched)
Я пытался использовать выполнение GetData, чтобы связать две таблицы данных, но это не сработало:
Me.dataGrid.DataSource = Me.BindingSource1
GetData("SELECT dt.Time, dtSched.Date, dtSched.ID, dtSched.Client, dtSched.StartTime, dtSched.Reason FROM dt LEFT JOIN dtSched ON dt.Time = dtSched.StartTime")
Я пытаюсь соединить обе таблицы данных с помощью dt.Time и dtSched.StartTime. Затем заполните сетку данных. Любая помощь, которую кто-либо может оказать, будет просто потрясающей!
Спасибо!