我正在尝试下面的代码,并获得sql日期时间溢出异常.....问题在于黄金部分...休息到银和高级工作正常....当在黄金部分我尝试要向日期时间字段添加特定月数,我不知道执行什么操作,因为当我通过消息框检查时,ren_date的值为“12:00:00 AM”而不是添加6个月后的新日期值在mem_date值....
Dim ren_date, mem_date As Date
Dim renmon As String
mem_date = TxtMemDate.Text
' checks the type of membership and adds corresponding number of years to the membership date and stores in renewal date
If ComboBox1.SelectedItem = "Silver" Then
ren_date = mem_date.AddMonths(3)
renmon = ren_date.ToString("MMMM")
ElseIf ComboBox1.SelectedItem = "Premium" Then
ren_date = mem_date.AddYears(1)
renmon = ren_date.ToString("MMMM")
ElseIf ComboBox1.SelectedItem = "Gold" Then
ren_date = mem_date.AddMonths(6)
renmon = ren_date.ToString("MMMM")
End If
MsgBox(mem_date)
MsgBox(ren_date)
答案 0 :(得分:0)
我怀疑你的问题实际上在这里:
mem_date = TxtMemDate.Text
这可能是您尝试强制String
Date
的格式不正确。尝试在此行之后放置一个断点,然后使用调试器进行实验。
这是另一回事:也许你的ComboBox1.SelectedItem
与字符串“Gold”不完全匹配。在Else
添加If
块,并在其中添加类似
MsgBox("*" & ComboBox1.SelectedItem.ToString() & "*")
这应该揭示项目文本周围是否有前导或尾随空格。
答案 1 :(得分:0)
此代码按预期执行
Dim ren_date, mem_date As DateTime
Dim renmon As String = ""
If DateTime.TryParse(TxtMemDate.Text, mem_date) Then 'convert text to date
' checks the type of membership and adds corresponding number of years to the membership date and stores in renewal date
If ComboBox1.SelectedItem.ToString = "Silver" Then
ren_date = mem_date.AddMonths(3)
renmon = ren_date.ToString
ElseIf ComboBox1.SelectedItem.ToString = "Premium" Then
ren_date = mem_date.AddYears(1)
renmon = ren_date.ToString
ElseIf ComboBox1.SelectedItem.ToString = "Gold" Then
ren_date = mem_date.AddMonths(6)
renmon = ren_date.ToString
End If
Debug.WriteLine(renmon)
Else
Debug.WriteLine("Date entered is not correct format")
End If