2012-02-26 26 views
0

iamがmediawikiで辞書を作っていて、この目的のためにvb.netのボットを設計しました [[code dosne [それは[[コードがvb.netの角括弧文字列を検索する

dbCommand.CommandText = "SELECT * FROM data" 
      dbCommand.Connection = dbConn 
      dbConn.Open() 
      Dim dbDR As OleDb.OleDbDataReader = dbCommand.ExecuteReader 

      While dbDR.Read 
       Dim mydata As String = CStr(dbDR("mean".ToString)) 
       If InStr(mydata, vbNewLine & "[[اسم نکرہ]]") Then 
        Dim myid As String = dbDR("ID".ToString) 
        ListBox1.Items.Add(mydid) 
       End If 
      End While 

の下vbNewLine &ため、このコードの検索です「[[اسمنکرہ]]」文字列にして、リスト・ボックスするMYIDを追加しますが、それは検索をバイパスようだ「اسمنکرہ」も(なしそれが混ざるように。どこで間違っているの?

+1

からのデータをフィルタリングしている*

を使用右から左にレンダリングされる言語は非常に扱いにくい場合があります。少なくとも、InStrオーバーロードを試して、CompareMethodをとり、デフォルトのバイナリの代わりにテキストを指定できるようにしてください。既定の文化も重要な役割を果たします。さらに、String.ToCharArray()で問題を診断し、String.IndexOf()を使用すると、StringComparisonを選択できます。最後に、角カッコはSQL文のエスケープ文字です。 –

+0

Hansのコメントに沿って、大括弧で囲まれていますか?文字列は私のために見つかりましたが、私はデータベースに対してテストしませんでした。 – Fionnuala

答えて

0

用途:dbCommand.CommandText = "SELECT * FROM data WHERE mean like '%[[اسم نکرہ]]%'" 注いくつかの古いMSアクセスバージョンはlikeクエリでサポート%いけないので、あなたは句読点をミキシングそれソース、VB.net

でそれをフィルタリングする必要はありません
+2

これは当てはまりませんが、ワイルドカードは、ANSI-89またはANSI-92に応じて*または%のいずれかになります。http://office.microsoft.com/en-us/access-help/access-wildcard-character-reference- HA010076601.aspx – Fionnuala

+0

msアクセスデータベースから取得した後にデータを何回かフィルタリングする必要があるため、SQLクエリを使用できません。それ以外の方法があれば? – user934820

+0

+1、@Remouありがとうございました –

関連する問題