2010-02-18 80 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添加一天的日期