使用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时转换失败”
任何人都可以为我提供此错误的解决方案。
需要查询帮助。
答案 0 :(得分:1)
首先,你需要使用参数而不是像你的例子一样使用字符串构建SQL语句,你不希望成为任何SQL注入攻击的受害者。 安全警告但除此之外:
`'" & Textbox1.Text & "' + 1 `
应该是
DATEADD(day, 1,'" & Textbox1.Text & "')
这将为您的日期添加1天