2013-08-02 54 views
1

我的表將包含以下值。 H1,H2,H3與大小1使用vb.net在SQL Server的表中用NULL替換值

**Register Date  Year Batch h1  h2  h3**  
    1138M0321 02-08-2013 3  1  A  A  NULL 
    1138M0323 02-08-2013 3  1  P  P  NULL 
    1138M0324 02-08-2013 3  1  P  P  NULL  
    1138M0325 02-08-2013 3  1  P  P  NULL 

我需要更新這些字段一個* (H1/H2/H3) *與NULL VARCHAR字段。但我只能添加「」而不是實際上NULL 如何用NULL更新表?

+0

爲什麼只能添加「」?什麼是規則,你想要將哪些行和字段設置爲NULL? –

+0

取決於我需要更新H1或H2或H3的條件。如果我們不知道規則,那麼我們應該如何顯示正確的sql,這取決於_which_條件,我不能將該值返回到NULL,這是該字段的開始狀態,當它不包含任何值時 –

+1

。日期字段扮演什麼角色?爲什麼不能將值(?)設置爲NULL?你試過了什麼,結果是什麼,期望的結果是什麼? –

回答

3

NULL值必須是SQL,而不是一個.NET價值,所以不是想喜歡的東西:

"... SET h1 = " & NULL & " ... " 

在查詢只需使用這樣的:

"... SET h1 = NULL ... " 

需要注意的是:

Null值不能用於那些需要在表格中從另一行表中的區別一行信息,如主鍵。

請參閱MSDN Documentation

+0

沒有顯示錯誤,但表格沒有更新 –

0

如果你沒有一個NOT NULL約束

「UPDATE student_attendance_table SET H1 =」 & System.DBNull.Value &「WHERE ...

+0

我在vb中這樣做。淨沒有空,當我嘗試像這樣「UPDATE student_attendance_table SET h1 =」&NULL&「WHERE ...只有Nullable和DBNull如果我使用DBNull它顯示錯誤 –

+0

你不能使用System.DBNull.Value嗎? –

2

爲什麼用VB空值在所有...

UPDATE student_attendance_table SET h1 = NULL WHERE... 
0

如果你要堅持使用NULL,那麼它必須包含語句本身內不帶任何參數,使用像經典的方式:

"UPDATE student_attendance_table SET h1 = NULL WHERE... 
0
"Update Table Set Column = (NULL As Column Type) where Condition" 
1
UPDATE student_attendance_table SET h3 = 'NULL' WHERE... 

這會讓你的查表像這樣:

**Register Date  Year Batch h1  h2  h3**  
    1138M0321 02-08-2013 3  1  A  A  'NULL' 
    1138M0323 02-08-2013 3  1  P  P  'NULL' 
    1138M0324 02-08-2013 3  1  P  P  'NULL' 
    1138M0325 02-08-2013 3  1  P  P  'NULL' 

而當你想要顯示列h3的值。你可以在trim的單引號中顯示NULL。