2012-02-26 4 views
0

iam faire un dictionnaire dans mediawiki et à cette fin, j'ai conçu un bot dans vb.net lorsque je cherche dans une chaîne qui contient [[code dosne détecter le [[dans une chaîne un semble que contourner le [[code est ci-dessousrechercher une chaîne entre crochets dans 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 

cette recherche de code pour vbNewLine & "[[اسم نکرہ]]" dans la chaîne, puis ajoutez myid listBox mais la recherche "اسم نکرہ" aussi (sans [[) alors ça se mélange. où je fais une erreur?

+1

ponctuation Mélange avec des langues rendues de droite à gauche peut être assez difficile. Au moins expérimenter avec la surcharge InStr qui prend un CompareMethod afin que vous puissiez spécifier le texte au lieu de la valeur par défaut de binaire. Votre culture par défaut joue également un rôle important. En outre diagnostiquer le problème avec String.ToCharArray() et favoriser String.IndexOf() ainsi vous pouvez choisir un StringComparison. Enfin, les crochets sont un caractère d'échappement pour les instructions SQL. –

+0

En ligne avec le commentaire de Hans, êtes-vous sûr que ce sont les crochets? La chaîne est trouvée pour moi, bien que je n'ai pas testé contre une base de données. – Fionnuala

Répondre

0

Utilisation: dbCommand.CommandText = "SELECT * FROM data WHERE mean like '%[[اسم نکرہ]]%'" Remarque une ancienne version ms accès DonT support % dans like requête afin d'utiliser *

de sorte que vous filtrez les données de sa source, pas besoin de filtrer dans VB.net

+2

Ce n'est pas vrai, le caractère générique est * ou% selon ANSI-89 ou ANSI-92: http://office.microsoft.com/en-us/access-help/access-wildcard-character-reference- HA010076601.aspx – Fionnuala

+0

Je ne peux pas utiliser la requête sql parce que j'ai besoin de filtrer les données plusieurs fois après avoir obtenu de la base de données d'accès ms. s'il y a un autre moyen? – user934820

+0

+1, @Remou merci pour la note –

Questions connexes