2013-03-25 74 views
3

我有一個字段clube varchar(50),它默認是NULL,它不是notnull,所以它接受空值。我需要知道的是,如果我已經在該字段中創建了一個值,並且我想製作一個Update並將其值設置爲null,那麼我該怎麼做?
我試圖設置nullstring但沒有奏效。更新空值的varchar字段

如果某些條件成立,我想將此字段設置爲NULL除以Update

而且很明顯,如果條件成爲假,我會傳遞一個值而不是null的值。所以我需要使用MySqlcommand Parameter。像:

sql = "UPDATE usuarios SET nome = @nome"; 
cmd.CommandText = sql; 
cmd.Parameter.Add(New MySqlParameter("@nome", MySqlDbType.VarChar)).Value = `variable`; 

如果條件true = variable = null其他variable != null

+0

它很容易使一個'downvote' .. 。現在幫忙解答什麼都沒有! – Ghaleon 2013-03-25 19:24:47

+0

我同意這不應該被關閉。我想人們認爲它需要在[dba.se]上發佈,但這只是在適合任何地方的灰色地帶。它不應該關閉國際海事組織。 (是的,我知道我投了'關閉',這是我錯誤的點擊,我希望這個消息會讓其他人投票'重新打開') – 2013-03-27 15:07:14

回答

1

這是我找到了答案:

cmd.Parameters.Add(new MySqlParameter("@nomeclube", MySqlDbType.VarChar)).Value = !String.IsNullOrEmpty(usr.Nome_Clube) ? (object)usr.Nome_Clube : DBNull.Value; 
0

簡單。只要將它設置爲NULL

UPDATE table SET clube = NULL WHERE ..... 
+0

首先。刪除downvote請求。這並不簡單。記住我擁有的條件?所以,如果它的FALSE。我不想將它設置爲空...我需要使用'MySqlCommand參數'來做到這一點 – Ghaleon 2013-03-25 19:10:57

+0

我沒有downvote。請使用MySqlCommand規範說明問題。 – 2013-03-25 19:13:31

+0

剛剛更新了我的問題 – Ghaleon 2013-03-25 19:14:02

2

將值設置爲null:

cmd.Parameter.Add(New MySqlParameter("@nome", MySqlDbType.VarChar)).Value = DBNull.Value; 
+0

我需要使用變量來做到這一點。因爲它不會總是空的... – Ghaleon 2013-03-25 19:42:07

+0

到目前爲止,爲了達到這個目的,你有什麼目標?相應地更新您的問題。 – 2013-03-25 19:43:13

+0

我剛剛找到答案。謝謝@joeframbach。這個問題並不那麼愚蠢,沒有看到downvote,但確定。 – Ghaleon 2013-03-25 19:48:14