begin process at 2008 08 28 09:29:31
1 232 958 membres
76 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Récuperation de résultats de requête [ Base de données / Oracle ] (plateau)

Récuperation de résultats de requête le 25/06/2008 16:01:35

plateau

Bonjour à tous


J'essai de faire un petit moteur de recherche pour une base de donnée,

Je récupère ce qui a été tapé dans le textBox de recherche, je le découpe  et puis avec chaque mot je fais une recherche dans la BD

Mon code est le suivant :

OleDbConnection connection = newOleDbConnection();
connection.ConnectionString = "cnx";

connection.Open();

int
i;

string
searchText;
searchText = txtSearch.Text;
string[] sep_result = searchText.Split(' ');
for
(i=0; i<sep_result.Length;i++)

        {

OleDbDataAdapter da = newOleDbDataAdapter("SELECT * FROM matable WHERE COL1 LIKE '%" + sep_result[i] + "%'", connection);

            DataSet ds = newDataSet();

            da.Fill(ds);

lbltest.Text +=ds.Tables[i].Rows[i].ItemArray[i].ToString() + "<br>";  

      }
connection.Close();

Mon problème c'est que si j'ai plus qu'un mot de taper j'ai l'erreur suivante  : Impossible de trouver la table 1.

Alors en changenat l'indice dans la table est row :

lbltest.Text +=ds.Tables[0].Rows[0].ItemArray[0].ToString() + "<br>"

Ca marche à moitié puisque ca ne me retourne qu'un seul résultat par mot

De l'aide svp car je ne vois pas d'issus    





Re : Récuperartion de résultats de requête le 25/06/2008 16:09:10

plateau
Autre précision j'ai essayer avec un cotrole DataList comme suit:

 dList.DataSource = ds.Tables[0].DefaultView;
 dList.DataBind();

le probléme avec ca c'est que ca ne retourne que les résultats du dernier mot taper

Re : Récuperation de résultats de requête le 28/06/2008 22:25:22

coq
(Admin CS)
Salut,

Plusieurs remarques :
- renseignes toi sur le problème d'injection et sur le concept de requête paramétrée
- ta façon de batir ta chaine est loin d'etre performante (http://blogs.codes-sources.com/coq/archive/2007/07/28/un-bon-moyen-de-se-souvenir-de-l-ami-stringbuilder.aspx)
- dans ton cas, passer par un DataSet n'a pas de sens
- tu devrais relire la doc de la classe DataTable & co (et celle des autres classes aussi)
- utilises la construction try/catch/finally pour gérer la connexion/déconnexion

Tu devrais passer par OleDbCommand (avec une requête paramétrée) et générer directement ta chaine (avec un StringBuilder) en navigant dans les résultats directement avec l'instance de OleDbDataReader (obtenue via la méthode ExecuteReader d'OleDbCommand).




/*
coq
MVP Visual C#
CoqBlog
*/

Re : Récuperation de résultats de requête le 03/07/2008 19:46:18

plateau
merci pour les conseils, ca va surement m'aider


Classé sous : connection, mot, recherche, ds, searchtext

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS