这大致是我创建的添加表单...我想将此信息发送到我正在使用的数据库中,这是mysql。 假设获取事件日期和类型以及如果日期相同则增加1的计数,否则它将返回到一个。
这是代码
Dim count As Integer
Dim hotelcode As Integer
hotelcode = lstHotel.SelectedItem.Value
Dim objCDBHotel As New CDBHotel
Dim objCHotel As New CHotel
Dim hotelname As String
Dim intNumOfRecordsAffected As Integer
Dim i As Integer
If count = 1 Then
objCHotel = objCDBHotel.getOneHotel(hotelcode)
hotelname = objCHotel.strHotel
objCGuestProfile.GuestId = hotelname & " - " & txtIncidentDate.Text & " - " & count
count = i + 1
Else
count = i + 1
objCHotel = objCDBHotel.getOneHotel(hotelcode)
hotelname = objCHotel.strHotel
objCGuestProfile.GuestId = hotelname & " - " & txtIncidentDate.Text & " - " & count
End If
问题是我的计数没有增加,我如何检查代码并增加1个计数或如果日期不同则将计数更改为1? 另外我如何删除日期中的斜杠,以便只取出数字?
提前致谢。
@Tim, 标准是最后使用的日期。我可以举例说明如何使用下面提到的标准创建if语句吗?
[如果以前使用过日期,如果以前使用过日期,则计数将为+1,否则为1。]
此外,“GuestID”将类似于“FHS-201011-1”。如何删除事件日期[20/10/11]中使用的斜杠?
请咨询
答案 0 :(得分:1)
使用的最后日期不一定与之前未使用的日期相同。您可以轻松地将日期与之前使用的日期不同,但该日期之前使用了3或4个条目。
即,事件发生日期为2011年1月15日。使用的最后日期是2011年12月1日,但除非您有其他一些有效的控制/业务规则,否则谁会说在上一次事件中没有使用2011年1月15日?
话虽如此,让我们一起使用上次使用标准的日期。
' Assumptions:
' 1. Incident Date is a TextBox with name txtIncidentDate
' 2. lastDateUsed is a string at the class level that stores the previous value from
' txtIncidentDate
' 3. count is an Integer at the class level that holds the current count
' Here is where you check to see if you need to increment count, or set it back to 1.
If Not txtIncidentDate.Text = lastDateUsed Then
count = count + 1
Else
count = 1
objCHotel = objCDBHotel.getOneHotel(hotelcode)
hotelname = objCHotel.strHotel
' Use the String.Replace method to remove the "/"
objCGuestProfile.GuestId = hotelname & " - " & txtIncidentDate.Text.Replace("/", "") & " - " & count
' Update lastDateUsed
lastDateUsed = txtIncidentDate.Text
上面的代码片段需要考虑一些事项:
您需要验证事件日期文本框中值的格式。您可能希望通过DateTime.Parse Method (String)或DateTime.TryParse Method将其转换为实际日期,但看起来您的应用中有特定于文化的格式。
尝试根据应用中的日期更改重置计数,而不知道数据库中已存在的内容已经很可能会让您感到悲伤。另一种需要考虑的方法是在插入数据时更新计数 - 如果您使用插入的存储过程,则可以在过程中使用逻辑来执行此操作。
从您发布的实际插入内容的代码片段中看不出来的是 - 非常,非常,非常,非常利用直接从用户那里获取输入。你为SQL注入攻击敞开大门。对实际插入使用参数化查询。