更新具有条件问题的表

时间:2010-02-18 07:22:50

标签: .net sql-server vb.net

使用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时转换失败”

任何人都可以为我提供此错误的解决方案。

需要查询帮助。

1 个答案:

答案 0 :(得分:1)

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

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

应该是

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

这将为您的日期添加1天