gpt4 book ai didi

c# - C#中使用NCHAR获取特殊字符

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:19 26 4
gpt4 key购买 nike

我正在我的应用程序中实现一个 SQL Server CE 数据库,并尝试将一些 SQL 查询转换为代码。我有这个声明:

INSERT INTO Unit (unitTypeID, label) VALUES (@unitTypeID, 'm/s' + NCHAR(0x00B2));

我的 C# 代码如下所示:

            string value = @"'m/s' + NCHAR(0x00B2)";
cmdString = "INSERT INTO Unit (unitTypeID, label) VALUES (@guid, @value)";
cmd = new SqlCeCommand(cmdString, connection);
cmd.Parameters.Add("@guid", guid).SqlDbType = SqlDbType.UniqueIdentifier;
cmd.Parameters.Add("@value", value).SqlDbType = SqlDbType.NText;
cmd.ExecuteNonQuery();

NCHAR(0x00B2) 是一个上标 2. 如何在 C# 中复制此功能?我不想将 ² 粘贴到代码中,因为我在此数据库中使用了几个特殊字符。

最佳答案

您不能将表达式作为参数传递 - 只能传递值(事实上,这是首先使用参数化查询的重要原因之一)。因此,您实际上是在传递字符串 '''m/s'' + NCHAR(0x00B2)' - 与您尝试做的完全不同。

处理此问题的一种方法是在字符串中使用转义字符:"m/s\u00B2"

为了提高可读性,我建议将这些特殊字符保留为常量,例如:

/// <summary>Superscript two ("²").</summary>
const string SuperscriptTwo = "\u00B2";

...
var val = "m/s" + SuperscriptTwo;
...

关于c# - C#中使用NCHAR获取特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30460092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com