c# - C# 6 中的 null 和字符串插值

标签 c# c#-6.0

我正在使用新的 C# 6.0 功能字符串插值来生成 SQL 语句。

$@"INSERT INTO [dbo].[TableName]([Column1], [Column2]) Values({item.property1}, {item.property2})";

如果属性为空则生成的 SQL 如下

INSERT INTO [dbo].[TableName]([Column1], [Column2]) Values(,)

这会导致错误。 (不正确的 SQL)。
我需要 Null 而不是空格。我能以某种方式实现这一目标吗?

最佳答案

{Convert.ToString(item.property1) ?? "NULL"} 应该这样做。这仍然是错误的,因为您需要非常特定的格式才能使 SQL 正确显示。您可以自己解决格式问题。

通常的 SQL 注入(inject)免责声明已经在评论中给出。这种方法是无可救药的。你需要把它扔掉。

关于c# - C# 6 中的 null 和字符串插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36038817/

相关文章:

c# - NavigationService 提示从未附加到任何 View 的类执行 "FileNotFound"

c# - 将 Graphql 转换为 SQL?

c# - 如果 Exception 过滤器的过滤器抛出异常会发生什么

c# - C# nameof 运算符可以在没有实例的情况下引用实例属性吗?

c# - 在下游项目中使用中间件对象的 .NET Core 模式是什么?

c# - 使用 C# 从 Xamarin Studio 中的 ListView 获取 EditText 控件

c# - NuGet Pack -Build 似乎不理解 c# 6.0

c# - 为什么 Resharper 在这里给我一个 'Localizable Interpolated String' 提示?

c# - IEnumerable 表达式体成员 C#

c# - ResourceManager 和不受支持的平台