在vb.net中将datetimepicker值转换为日期时获取日期转换错误

时间:2015-02-22 05:41:54

标签: sql vb.net datetime

我从字符串"转换日期和/或时间时转换失败。我有一个将datetimpicker值转换为特定日期格式的函数。我在一个SQL查询中调用它。请纠正我错误的地方。这是我将datetimepicker值转换为特定格式的功能:

Public Function convertDateTimePickerToDate(ByVal Datevalue As DateTimePicker) As Date

    Dim convertedDate As Date
    Dim format = "dd-MMM-yyyy"
    Dim dateString As String = Datevalue.Value.ToString(format)
    convertedDate = Date.ParseExact(dateString, format, Nothing)
    Return convertedDate

End Function

在我的SQL查询中,我将其称为: -

sql ="插入SIM_SALES值('"& txt_simNO.Text&"''"& txt_simMSISDN。文字&&#;;''"& txt_simCustName.Text&"','"& convertDateTimePickerToDate(dtp_simSaleDate) &"')"

请在我错的地方纠正我。或者是否有任何其他建议,我可以通过它来实现相同的逻辑。提前谢谢

1 个答案:

答案 0 :(得分:0)

该格式字符串仅在字符串时适用。当您将其转换回日期结构时,信息将丢失。当您将日期附加到字符串时将日期重新转换回字符串时,它会使用当前区域性的默认格式,看起来可能是dd/MM/yyyy。 如果进行盲目串转换,SQL Server需要MM/dd/yyyy

但是,使用SQL参数将解决您在此遇到的两个问题,第一个是错误的日期序列化格式,第二个是SQL注入漏洞。用户可以将sql命令输入到那些将它们连接在一起后执行的文本框中。

如果您使用的是ado.net,请使用command.Parameters.AddWithValue()并按原样传递日期结构。