Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ADO.NET Discussion :

Requête de recherche avec % C# SQL Server


Sujet :

ADO.NET

  1. #1
    Débutant  
    Requête de recherche avec % C# SQL Server
    Bonjour à tous,
    Je cherche à effectuer une recherche interactive, au fur et à mesure que l'on saisit dans une zone de texte, dont voici le code:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    private void txtRech_TextChanged(object sender, EventArgs e)
            {
                try {
                    SqlConnection con = new SqlConnection();
                    SqlCommand cmd = new SqlCommand();
                    SqlDataAdapter da = new SqlDataAdapter();
                    DataSet ds = new DataSet();
                    SqlCommandBuilder cb = new SqlCommandBuilder();
     
                    con.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=mabase;Integrated Security=True";
                    con.Open();
                    cmd = new SqlCommand("SELECT * from TClient Where NomClient LIKE @Val OR AdresseClient LIKE @Val OR PostnomClient LIKE @Val", con);
                    cmd.Parameters.Add("Val", SqlDbType.NVarChar).Value = "%" + txtRech.Text.Trim() + "%";
                    da = new SqlDataAdapter(cmd);
                    da.Fill(ds.Tables[0]);
                    dtgv.DataSource = ds; }
                catch (Exception exc) { MessageBox.Show("L'erreur suivante est survenue \n" + exc.Message, "Erreur survenue", MessageBoxButtons.OK, MessageBoxIcon.Error); }
     
            }


    J'obtiens l'erreur disant qu'il est impossible de trouver la table 0.

    Quelqu'un e-t-il une lumière à m'apporter?
    Dans la vie, estimer 3 choses: le courage, la persévérance et l'humilité!!!
    Dans ce forum, ne pas oublier 3 choses: les balises Code, Quote et le Tag Résolu!!!

  2. #2
    Modérateur

    A priori tu as saute une etape :
    Code C# :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    da.Fill(ds.Tables[0]);    // Tu charges directement ds.Tables[0] qui n'existe pas
    dtgv.DataSource = ds;    // Tu passes tout le dataset en tant que data source quand il faudrait passer uniquement la table


    Donc la solution devrait etre :
    Code C# :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    da.Fill(ds);    // Cela va creer la Table 0
    dtgv.DataSource = ds.Tables[0];    // On passe la Table 0 dans la data source
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Débutant  
    Merci beaucoup. Je tente et reviens!!!
    Dans la vie, estimer 3 choses: le courage, la persévérance et l'humilité!!!
    Dans ce forum, ne pas oublier 3 choses: les balises Code, Quote et le Tag Résolu!!!

  4. #4
    Débutant  
    Ça marche parfaitement!!!
    Un souci: y a t’il moyen de le faire avec le datareader et remplir le DataGrid progressivement ligne par ligne comme je l’ai souvent fait en VB?
    Dans la vie, estimer 3 choses: le courage, la persévérance et l'humilité!!!
    Dans ce forum, ne pas oublier 3 choses: les balises Code, Quote et le Tag Résolu!!!

###raw>template_hook.ano_emploi###