C#学习教程:C#和SQLServerCE:在搜索中将定义符号(+或&)后的词视为单独的词在搜索中被视为单独的词我正在开发一个基于C#和SQLServerCE3.5的简单翻译应用程序我有一个搜索文本框,可以通过textBox1.Text搜索数据库中的某些列,并使用普通的SQL查询[SELECT..LIKE'%%']我想要实现的目标:我想在数据库中的所有位置搜索某个符号(例如+)之后的所有单词,因此不需要在完整上下文中编写它们(逐字,因为它们存在于数据库中))换句话说:我想在某些符号之后拆分单词,以便程序独立搜索每个单词(符号之前的单词,符号之后的每个单词单独)示例:如果我尝试搜索值的“举证责任”,我会在以前的上下文中写,但对于用户来说,这是行不通的。所以我想让他在他愿意寻找的两个词之间放一个符号(即他应该搜索“负担+证据”)图1:http://i.imgur.com/sd5Y5B7.jpg,图2:http://i.imgur.com/gVj41xP.jpg编辑-我的搜索按钮代码:sqlcmd=newSqlCeCommand("SELECT*FROMT1WHEREEnglishWordlike'%"+textBox1.Text+"%'OREnglishDesclike'%"+textBox1.Text+"%'ORArabicWordlike'%"+textBox1.Text+"%'ORArabicDesclike'%"+textBox1.Text+"%'",sqlcon);尝试{listView1.Items.Clear();sqldr=sqlcmd.ExecuteReader();while(sqldr.Read()){ListViewItemitem=newListViewItem(sqldr["ID"].ToString());item.SubItems.Add(sqldr["EnglishWord"].ToString());item.SubItems.Add(sqldr["EnglishDesc"].ToString());item.SubItems.Add(sqldr["ArabicDesc"].ToString());item.SubItems.Add(sqldr["ArabicWord"].ToString());item.SubItems.Add(sqldr["Subject"].ToString());listView1.Items.Add(项目);}listView1.Enabled=true;label7.Text=listView1.Items.Count.ToString();}catch(SqlCeExceptionex){MessageBox.Show("错误:"+ex.Message,"Somethingwrong");}好的,所以你在这里得到不同的答案。将textbox.text拆分到其他文本框中你有这个字符串[]结果你知道长度是1还是根本没有拆分。如果它大于1thenRawtextissplitwith+orwhatever.I'mnotsurewhatyouwanttoachieve,butyoucandothis.if(result.Length==1){//Select*fromdatabasewherecolumn=result[0复制代码]}else{foreach(stringsinresult){//Select*fromdatabasewherecolumnlike'%'+s+'%'(如果你使用参数更好)}}答案:RichardDeeming@CodeProject假设你想找到每次出现单词Forallrecords至少在四列之一中,这样的事情应该有效:sqlcmd=sqlcon.CreateCommand();string[]words=textBox1.Text.Split(new[]{'+'},StringSplitOptions.RemoveEmptyEntries);StringBuilderquery=newStringBuilder("SELECT*FROMT1WHERE1=1");for(intindex=0;index这也将修复代码中的SQL注入[^]漏洞。如果用户搜索burden+evidence,结果查询将如下所示:以上是C#学习教程:C#和SQLServerCE:在搜索中将定义符号(+或&)之后的词视为单独的词ShareallContent,如果对你有用,需要了解更多C#学习教程,希望大家多多关注---SELECT*FROMT1WHERE1=1And(EnglishWordLike@word0OrEnglishDescLike@word0OrArabicWordLike@word0OrArabicDescLike@word0)And(EnglishWordLike@word1OrEnglishDescLike@word1OrArabicWordLike@word1OrArabicDescLike@word1)/*参数:-@word0='%burden%'-@word1='%proof%'*/本文摘自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
