[英]Insert dbnull in SQL database doesn't work
我需要在數據庫中插入一個空值嘗試了很多方法但沒有結果
我試過:
String.IsNullOrEmpty(ValuesFields.Capacitance.ToString()) ? "," + null : "," + ValuesFields.Capacitance.ToString().Replace(",", ".")
String.IsNullOrEmpty(ValuesFields.Capacitance.ToString()) ? "," + DDNull.Value : "," + ValuesFields.Capacitance.ToString().Replace(",", ".")
String.IsNullOrEmpty(ValuesFields.Capacitance.ToString()) ? "," + (Object)DDNull.Value : "," + ValuesFields.Capacitance.ToString().Replace(",", ".")
而不是做這樣的事情:
"," + null + ","
做這個:
+ ", null ," +
如果您知道數據庫中有一個接受空值的列,並且您想在該列中插入空值,只需將其硬編碼到 SQL 字符串中即可。 不要費心嘗試在 HLL 中操作對象以使其生成字符串“null”。
注意:使用這樣的字符串插入數據庫不是最佳實踐。 以下是一些入門示例: https : //blogs.msdn.microsoft.com/sqlphp/2008/09/30/how-and-why-to-use-parameterized-queries/
使用NULLIF()
如果兩個表達式相等, NULLIF()
函數將返回NULL,否則它將返回第一個表達式。
"NULLIF(" + ValuesFields.Capacitance.ToString().Replace(",", ".") + ",'')"
看來您正在執行查詢串聯而不是正確使用參數。 如果您使用了參數,這個問題就不會首先出現。
由於您沒有標記特定的數據庫,我無法提供具體的解決方案。 但是看看如何在您使用的任何數據庫中使用參數化查詢。
然后,您可以通過調用將單個參數添加到您的命令對象
command.AddParameterWithValue(parameterName, parameterValue);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.