如何将特殊字符插入 Advantage SQL 数据库?

How can I insert special characters into Advantage SQL database?

我正在尝试将 µ 之类的字符作为 varchar 插入,但它不起作用,我收到错误消息

cannot convert Unicode characters to Codepage characters

因为是医疗文件,我不能更改任何数据。该程序是用 vb.net 编写的,它将 csv 数据插入 Advantage SQL 所以我正在尝试这个功能

 Public Shared Function Convert(ByVal input As String) As String
      Dim OriginalCodierung As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")
        Dim iso8859 As System.Text.Encoding = System.Text.Encoding.GetEncoding("iso-8859-1")
        Dim enc As System.Text.Encoding = System.Text.Encoding.Default

       Dim OriginalBytes As Byte() = OriginalCodierung.GetBytes(input)
        Dim result As Byte() = System.Text.Encoding.Convert(OriginalCodierung, iso8859, OriginalBytes)
        Dim s As String = enc.GetString(result)
        Return s

    End Function

它在 iso8859 中编码为 utf8,但它并没有真正帮助。

如何在不更改数据的情况下插入具有这些字符的数据?

我不知道这是否能回答你的问题:

使用参数化查询:

using (SqlCommand com = new SqlCommand("INSERT INTO your_Table (column) " +
                                       "VALUES (@INPUTVALUE)", con))
    {
    com.Parameters.AddWithValue("@INPUTVALUE", @"""%$#@?,.;");
    com.ExecuteNonQuery();
    }

要转义 LIKE 表达式中的特殊字符,您可以在它们前面加上转义字符。您可以选择要与 ESCAPE 关键字一起使用的转义字符。 (作为 MSDN 参考资料)

例如,使用 \ 作为转义字符转义 % 符号:

select * 来自 your_table where yourcolumnfield like '%15\% off%' ESCAPE '\'

如果您不知道您的字符串中包含哪些字符,并且不想将它们视为通配符,您可以在所有通配符前加上一个转义字符,例如:

set @msearchString = replace(
                replace(
                replace(
                replace(@myString,'\','\'),
                        '%','\%'),
                        '_','\_'),
                        '[','\[') 

(请注意,您也必须转义转义字符)。然后你可以使用这样的东西:

select * from table where yourcolumnfield like '%' + @msearchString + '%' ESCAPE '\'