簡體   English   中英

在 SQL 數據庫中插入 dbnull 不起作用

[英]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(",", ".") + ",'')"

看來您正在執行查詢串聯而不是正確使用參數。 如果您使用了參數,這個問題就不會首先出現。

由於您沒有標記特定的數據庫,我無法提供具體的解決方案。 但是看看如何在您使用的任何數據庫中使用參數化查詢。

  • SQL Server 使用@parameter 來指定參數。
  • MySQL 也使用@parameter 語法。

然后,您可以通過調用將單個參數添加到您的命令對象

command.AddParameterWithValue(parameterName, parameterValue);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM