【问题标题】:Datetime problem in VB 2005VB 2005 中的日期时间问题
【发布时间】:2010-06-01 09:41:51
【问题描述】:

我正在使用 VB2005 和 SQL SERVER 2000。

PVAR_SQL_STR = "INSERT INTO GLR_US_PERIOD (ORG5_CODE,PERIOD_YEAR,PERIOD_CODE," _
    "PERIOD_NO,FROM_DATE,TO_DATE,INSERT_USER,INSERT_DATE) VALUES " _
    & "('" & PVAR_COMPANY_CODE & "' ,'" & TextBox1.Text & "','" & Serial1.Text & _
    "'," & TextBox2.Text & ", '" + DateTimePicker1.Value.ToString("D") + "' ,'" + _
    DateTimePicker2.Value.ToString("D") + "','" & PVAR_USER_CODE & "','" + _
    Now.ToString("F") + "')"

从字符串转换日期时间的语法错误仅因为这部分:

Now.ToString("F")

为什么,我不知道,但是当我变成

Now.ToString("D")

它运作良好,但它只保存日期。我想插入日期时间。

【问题讨论】:

    标签: x12


    【解决方案1】:

    简单的答案是根本不尝试将其全部构建到 SQL 语句中。请改用参数化查询,并将参数值设置为DateTime.Now(或DateTime.UtcNow)。

    参数化查询也是有效防范 SQL 注入攻击。将一般数据(尤其是用户提供的数据)直接插入 SQL 语句会导致灾难。

    有关更多信息,请参阅docs for SqlCommand.Parameters - 或查阅 ADO.NET 上任何不错的教程或书籍。

    【讨论】:

    • 非常感谢 MR/JON 先生,我试过了,效果很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2013-01-05
    相关资源
    最近更新 更多