2010-02-18 52 views
0

使用SQL Server 2005的表,VB.Net更新与conditon问题

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

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

我想使用文本框的值与condtion

更新我的表

对于实施例

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

首先,您需要使用参数,而不是像您的示例那样使用字符串构建SQL语句,您不希望成为任何SQL注入攻击的受害者。 saftey警告过但是,除了我的事:

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

应该

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

这将再用1添加一天的日期