需要一些建议:将数据保存到数据库

时间:2011-11-21 06:28:24

标签: .net vb.net

enter image description here

这大致是我创建的添加表单...我想将此信息发送到我正在使用的数据库中,这是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]中使用的斜杠?

请咨询

1 个答案:

答案 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

上面的代码片段需要考虑一些事项:

  1. 您需要验证事件日期文本框中值的格式。您可能希望通过DateTime.Parse Method (String)DateTime.TryParse Method将其转换为实际日期,但看起来您的应用中有特定于文化的格式。

  2. 尝试根据应用中的日期更改重置计数,而不知道数据库中已存在的内容已经很可能会让您感到悲伤。另一种需要考虑的方法是在插入数据时更新计数 - 如果您使用插入的存储过程,则可以在过程中使用逻辑来执行此操作。

  3. 从您发布的实际插入内容的代码片段中看不出来的是 - 非常,非常,非常,非常利用直接从用户那里获取输入。你为SQL注入攻击敞开大门。对实际插入使用参数化查询。