我从字符串"转换日期和/或时间时转换失败。我有一个将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) &"')"
请在我错的地方纠正我。或者是否有任何其他建议,我可以通过它来实现相同的逻辑。提前谢谢
答案 0 :(得分:0)
该格式字符串仅在字符串时适用。当您将其转换回日期结构时,信息将丢失。当您将日期附加到字符串时将日期重新转换回字符串时,它会使用当前区域性的默认格式,看起来可能是dd/MM/yyyy
。
如果进行盲目串转换,SQL Server需要MM/dd/yyyy
。
但是,使用SQL参数将解决您在此遇到的两个问题,第一个是错误的日期序列化格式,第二个是SQL注入漏洞。用户可以将sql命令输入到那些将它们连接在一起后执行的文本框中。
如果您使用的是ado.net,请使用command.Parameters.AddWithValue()
并按原样传递日期结构。