首页 > 解决方案 > 从 MySQL 数据库中提取约会并在 MonthlyCalendar 中显示其详细信息

问题描述

我遇到了一个我似乎无法解决的问题。我的程序的基础基本上是设置提醒。我有一个月历,以粗体显示我保存在 MySql 数据库中的日期。我要做的是允许用户单击粗体日期之一,然后显示有关约会的详细信息。截至目前,当有约会时,它以粗体显示,但是当他们点击以粗体显示的那一天时,我在该日期保存的所有笔记都没有显示。

Private Sub appt_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        MonthCalendar1.MinDate = Date.Today 'SETS CALENDAR TO CURRENT DATE AND FUTURE ONLY

        MySqlConn = New MySqlConnection 'ESTABLISHING CONNECTION
        MySqlConn.ConnectionString =
            "server=****;userid=****;password=****;database=****" 'DB INFO
        Dim READER As MySqlDataReader
        Try
            MySqlConn.Open()
            Dim Query As String
            Dim eventDate As Date
            Query = "select datetext FROM database1.table8 ORDER BY datetext" 'SEARCHING FOR DATES IN MY DATABASE FOR MY CALENDAR TO DISPLAY IN BOLD
            COMMAND = New MySqlCommand(Query, MySqlConn)
            READER = COMMAND.ExecuteReader

            If READER.HasRows = True Then
                While READER.Read
                    eventDate = READER.GetValue(READER.GetOrdinal("datetext"))
                    MonthCalendar1.AddBoldedDate(CDate(eventDate))'BOLDING DATES
                End While
                READER.Close()
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            For Each Control As Control In Me.Controls
                If TypeOf Control Is TextBox Then
                    Control.Text = String.Empty
                End If
            Next
            MySqlConn.Dispose()

        End Try
    End Sub

在学习了如何以粗体显示我的日期之后,我现在希望能够单击这些日期,然后让它打开一个新表单,显示与约会相关的信息。与约会相关的信息存储在 MySQL 数据库中。单击日期后,我不确定如何从数据库中提取它。任何帮助将不胜感激。

Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected

        TextBox1.Text = MonthCalendar1.SelectionEnd.ToShortDateString() 'SENDS CALENDAR DATE TO TEXTBOX

        setappt.cddate.Text = MonthCalendar1.SelectionEnd.ToShortDateString() SENDS CALENDAR DATE TO TEXTBOX IN A DIFFERENT FORM

        t = MonthCalendar1.SelectionRange.Start.Month.ToString & MonthCalendar1.SelectionRange.Start.Date.ToString



        m = MsgBox("Would you like to enter appointments for this date?", MsgBoxStyle.YesNo) 'WHEN YOU CLICK ON A DAY WITHOUT AN APPOINTMENT IT ASKS IF YOU WOULD LIKE TO CREATE AND APPOINTMENT
        If m = MsgBoxResult.Yes Then
            MonthCalendar1.Enabled = False
            MonthCalendar1.Hide()
            setappt.Enabled = True
            setappt.Show()
            'setdate.Text = ""
            PictureBox2.Enabled = True
            PictureBox2.Show()
            PictureBox3.Enabled = True
            PictureBox3.Show()
        Else

        End If

    End Sub

第一段代码用于在我的数据库中搜索粗体日期。第二位用于生成新约会。我假设我需要做的就是“如果数据库中有粗体日期,那么用户可以单击粗体日期并检索详细信息”

抱歉,我只是想提供所有必需品,以便我能得到一些帮助。谢谢!

编辑:已解决感谢@Abu6is 的所有帮助代码如下:

Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected

'setappt.cddate.Text = MonthCalendar1.SelectionEnd.ToShortDateString()



If (MonthCalendar1.BoldedDates.Contains(MonthCalendar1.SelectionStart)) Then

TextBox1.Text = MonthCalendar1.SelectionEnd.ToShortDateString

MySqlConn = New MySqlConnection

MySqlConn.ConnectionString =

"server=****;userid=****;password=****;database=****"

Dim READER As MySqlDataReader

Try

MySqlConn.Open()

Dim Query As String

Query = "select * FROM database1.table8 WHERE datetext = '" & TextBox1.Text & "'"

COMMAND = New MySqlCommand(Query, MySqlConn)

READER = COMMAND.ExecuteReader

While READER.Read

TextBox2.Text = READER.GetString("casename")

TextBox1.Text = READER.GetString("datetext")

TextBox3.Text = READER.GetString("type")



End While



Catch ex As Exception

MessageBox.Show(ex.Message)

Finally

MySqlConn.Dispose()

End Try

Else

TextBox1.Text = MonthCalendar1.SelectionEnd.ToShortDateString

m = MsgBox("Would you like to enter appointments for this date?", MsgBoxStyle.YesNo)

If m = MsgBoxResult.Yes Then

MonthCalendar1.Enabled = False

MonthCalendar1.Hide()

setappt.Enabled = True

setappt.Show()

'setdate.Text = ""

PictureBox2.Enabled = True

PictureBox2.Show()

PictureBox3.Enabled = True

PictureBox3.Show()

Else



End If

End If



End Sub

标签: mysqlvb.net

解决方案


推荐阅读