【问题标题】:Updating the table with conditon problem更新有条件问题的表
【发布时间】:2010-02-18 07:22:50
【问题描述】:

使用 SQL Server 2005、VB.Net

在我的应用程序中使用 3 个文本框

Textbox1.text = Date
Textbox2.text = TimeIn
Textbox3.text = TimeOut

我想通过使用带有条件的文本框值来更新我的表格

举例

Textbox1.text = 23/02/2009
Textbox2.text = 10:00  - HH:mm
Textbox3.text = 18:00

查询

update table1 set TimeIn = '" & Textbox2.Text & "', NewDate = case when CAST(LEFT('" & Textbox2.Text & "', 2) AS INT)  > CAST(LEFT('" & Textbox3.Text & "', 2) AS INT) then '" & Textbox1.Text & "' + 1 else '" & Textbox1.Text & "' end, TimeOut = '" & Textbox3.Text & "'  Where Date = '" & Textbox1.Text & "' 

上述查询显示错误为“将 varchar 值 '23/02/2009' 转换为数据类型 int 时转换失败”

谁能给我一个解决这个错误的方法。

需要查询帮助。

【问题讨论】:

    标签: .net sql-server vb.net


    【解决方案1】:

    首先,您需要使用参数,而不是像您的示例那样使用字符串构建 SQL 语句,您不想成为任何 SQL 注入攻击的受害者。 安全警告结束但除此之外:

    `'" & Textbox1.Text & "' + 1 `
    

    应该是

    DATEADD(day, 1,'" & Textbox1.Text & "')
    

    这将使您的日期增加 1 天

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 2020-04-06
      • 1970-01-01
      • 2016-06-25
      • 2020-02-29
      • 2018-10-04
      相关资源
      最近更新 更多