在SQL数据库中插入dbnull不起作用

时间:2019-11-23 10:08:28

标签: c# sql

我需要在数据库中插入一个空值,尝试了很多方法,但没有结果

我尝试过:

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(",", ".")

2 个答案:

答案 0 :(得分:0)

代替做这样的事情:

"," + null + ","

执行此操作:

+ ", null ," +

如果您知道数据库中有一列可以接受null值,并且想将null插入该列中,则只需将其硬编码到SQL字符串中即可。不要费力尝试在HLL中操作对象,以使其产生字符串“ null”。

注意:使用这样的字符串插入数据库不是最佳实践。以下是一些入门示例:https://blogs.msdn.microsoft.com/sqlphp/2008/09/30/how-and-why-to-use-parameterized-queries/

答案 1 :(得分:0)

似乎您正在执行查询串联,而不是正确使用参数。如果您使用过参数,那么最初不会出现此问题。

由于您尚未标记特定的数据库,因此我无法提供具体的解决方案。但是,请研究如何在正在使用的任何数据库中使用参数化查询。

  • SQL Server使用@parameter指定参数。
  • MySQL还使用@parameter语法。

然后您可以通过调用将单个参数添加到命令对象中

command.AddParameterWithValue(parameterName, parameterValue);