Tag: collat​​ion

什么.NET StringComparer等同于SQL的Latin1_General_CI_AS

我正在我的数据库和我的C#代码之间实现一个缓存层。 我们的想法是根据参数将某些数据库查询的结果缓存到查询中。 数据库正在使用默认排序SQL_Latin1_General_CP1_CI_AS – SQL_Latin1_General_CP1_CI_AS或Latin1_General_CI_AS ,我相信基于一些简短的谷歌搜索相当于相等,只是排序不同。 我需要一个.NET StringComparer,它可以给我相同的行为,至少对于相等测试和哈希码生成,正如数据库的排序规则所使用的那样。 目标是能够在C#代码中的.NET字典中使用StringComparer来确定特定字符串键是否已经在缓存中。 一个非常简单的例子: var comparer = StringComparer.??? // What goes here? private static Dictionary cache = new Dictionary(comparer); public static MyObject GetObject(string key) { if (cache.ContainsKey(key)) { return cache[key].Clone(); } else { // invoke SQL “select * from mytable where mykey = @mykey” // with parameter @mykey set […]

Microsoft.Jet.OLEDB.4.0转换字符

我正在使用包含以下字符的CSV: ” and • 我正在通过OleDb阅读CSV,提供者是Microsoft.Jet.OLEDB.4.0。 当数据加载到OleDbCommand时,字符分别转换为以下内容: “ and • 我怀疑连接字符串中可能有一个排序规则设置,但我无法找到任何相关信息。 我可以确认以下内容: 我打开它时可以看到CSV中的原始字符。 如果我通过OleDb WHERE [field] LIKE’%•%’在文件上运行select我得到0行但是如果SELECT WHERE [field] LIKE’%’%’我得到返回的行。 有什么想法吗?