搜索问题:ABC = abc在C#中怎么解决这个问题?

时间:2010-08-02 07:07:20

标签: winforms

我有快速搜索的代码

Tmp = "";
            MAK = "";
            DES = "";
            Cmd.CommandType = CommandType.TableDirect;
            Cmd.CommandText = "Ham";
            Cmd.IndexName = "B";
            Cmd.SetRange(DbRangeOptions.Match , new object[] { txtMa.Text }, null);
            SqlCeDataReader read = Cmd.ExecuteReader();
            while (read.Read())
            {
                Tmp     = read[2].ToString(); 
                MAK     = read[0].ToString(); 
                DES     = read[1].ToString();
            }
            read.Dispose();
            if (Tmp == "")
            {

                return false;
            }
            else
            {

                txtDes.Text = DES;
                return true;
            }

效果很好 - 但问题是

当我搜索ABC时,当我搜索abc时,我获得相同的搜索结果

如何分开它们?

提前谢谢

1 个答案:

答案 0 :(得分:1)

SQL搜索的区分大小写是数据库的设置。

特别是对于SQL Compact Edition,您需要确保在创建时使用启用了排序规则的3.5 SP1 +数据库,否则应用这些更改:

  

如果您指的是3.5 RTM   创建文件为旧文件,然后你   有一个选项:使用服务器资源管理器   Visual Studio或Object Explorer的   SSMS:   1.连接到文件   2.选择文件并右键单击它。选择数据库属性。   3.在“数据库属性”对话框的“缩小并修复”窗格中,您可以   将区分大小写的功能更改为   在Advanced的帮助下真实   属性对话框由激活   高级按钮。附:你不得不   执行紧凑或修复   操作

     

对于3.1或以前的SQL CE文件   版本,你必须遵循相同的   程序但必须先升级   该文件为3.5 SP1。

来源:http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/649f10a8-6880-46c4-82db-fb52b29614b9

我建议阅读该源代码,因为它会产生重要信息,例如区分大小写如何破坏向后兼容性。