【问题标题】:Calendar Date String Conversion in Fill Method with specific query带有特定查询的 Fill 方法中的日历日期字符串转换
【发布时间】:2021-02-13 11:16:29
【问题描述】:

我正在使用这个查询来生成一个 DataTable 来显示供用户选择的信息。我使用的填充方法出现错误。

从字符转换日期和/或时间时转换失败 字符串

SELECT        Time_Slot.TimeSlot, Proposed_Date.Date
FROM            Time_Slot CROSS JOIN
                         Proposed_Date
WHERE        (Time_Slot.TimeSlot_ID NOT IN
                             (SELECT        Event_Time_ID
                               FROM            Event_Booking
                               WHERE        (Booking_Date = @Booking_Date)))
DTAvailableBookingsTableAdapter.FillAvailableBookings(DSEventBooking.DTAvailableBookings, MonthCalendar1.SelectionRange.Start.ToShortDateString)

欢迎任何帮助解决错误

【问题讨论】:

    标签: sql vb.net visual-studio


    【解决方案1】:

    很多人在约会方面让自己的生活变得困难。 VB.NET 有一个专用的日期数据类型,因此,如果您正在处理日期,请使用它。不要将任何不是文本的内容转换为文本,除非它专门用于显示/序列化目的,并且仅支持文本。

    大概您的Booking_Date 是数据库中日期的适当数据类型,例如Access 中的 Date/Time 或 SQL Server 中的 date。在这种情况下,@Booking_Date 参数需要该类型的值,而不是文本。既然如此,为什么要在这里将正确类型的值转换为错误类型的值:

    MonthCalendar1.SelectionRange.Start.ToShortDateString
    

    Start 属性是正确的类型,您将其转换为String 会破坏它。别。只需传递您已经拥有的 DateTime 值,因为这是预期的结果。

    MonthCalendar1.SelectionRange.Start
    

    来自MonthCalendar,它应该已经将时间部分归零,因此无需自己执行此操作,但如果确实需要,您可以获得DateTime 值的Date 属性获取另一个具有相同日期和时间的DateTime 值。

    MonthCalendar1.SelectionRange.Start.Date
    

    请注意,DateTime 是一个 .NET 类型,而 VB 有一个 Date 类型,它只是它的别名,即 DateDateTime 是同一个东西。如果这令人困惑,那不应该。 Int32 也是 .NET 类型,Integer 是映射到它的 VB 数据类型。您是否一直使用Integer 而没有任何混淆?如果是这样,那么您也应该一直使用Date,而不会混淆。

    【讨论】:

    • 我尝试过使用:MonthCalendar1.SelectionRange.Start.Date。但错误仍然发生
    • 您使用的是什么数据库?存储日期的所有列的数据类型是什么?异常的类型是什么?请使用此信息更新您的问题。
    • 我正在使用 Microsoft sql server。日期列的数据类型是“日期”。异常类型:抛出异常:System.Data.dll 中的“System.Data.SqlClient.SqlException”
    • @Kayla 同样的错误信息? SqlException 用于每个错误。如果它是完全相同的错误消息,我建议检查 tableadapter 中参数的类型,但为什么当您声称列是日期时它会被检测为字符串,尚不清楚
    • @kayla 没有什么能阻止您将屏幕截图发布到您的问题中 - 打开截图工具,剪下错误,按 ctrl c,编辑您的问题,按 ctrl v。我建议您删除您的电子邮件地址,不要公开发布在太多垃圾邮件收割机发现它之前在互联网上进行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多