IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

C# Discussion :

Problème DataGridView


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Par défaut Problème DataGridView
    Mon projet est un site Web de commerce électronique, je travaille avec SQL Server 2000 et Microsoft Visual Studio - ASP.net (language c#).
    Les pages Web sont .aspx, j'ai fait des classes .cs.

    Une Classe connexion.cs qui fait la connexion à la base de données SQL Server 2000.
    Une autre classe administrateur.cs qui gére contient les fonctions ajouter, modifier, supprimer et afficher, en effet cette classe permet la gestion de la table administrateur (la table Administrateur a les attributs: login_admin,pwd_admin) dans ma base de données. Je veux utiliser pour ça un DatagridView (Grid View) . (Voir image GridView)
    Ce GridView est lié à un object business ( class qu'on a déjà créé) qui contient les méthodes ajouter,
    modifier, supprimer et afficher.
    La méthode afficher marche ça va.

    Voilà le code de la méthode afficher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public DataSet afficher()
    {
    connexion c = new connexion();
    string query = "SELECT * FROM administrateur";
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand = new SqlCommand(query, c.connex);
    DataSet ds = new DataSet();
    da.Fill(ds,"administrateur");
    c.CloseConnection();
    return ds;
    }
    J'ai retourner un dataset puisque le GridView demande un dataset pour la fonction afficher.
    (Voir image select-update)

    Mon probléme est dans la fonction Update(modifier) et delete (supprimer).

    Ces fonctions ne doivent rien retourner. (Voir Image select-update)


    Elles doivent pouvoir modifier ou supprimer de la base de données ainsi mettre à jour le GridView suivant la fonction exécutée je veux réaliser ça avec le Gridview c'est à dire en cliquant sur le bouton Update ou Delete du GridView.

    Dans ces 2 fonctions (delete et update) il conseillé d'utiliser un Dataset et SqlAdapter ...
    J'ai fait deux essai qui n'ont pas marché:

    1-Essai pour la fonction update:
    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
    public void modifier(string login_admin, string pwd_admin)
    {
    connexion c = new size=2>connexion();
    string query = "SELECT * FROM administrateur";
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand = new SqlCommand(query, c.connex);
    DataSet ds = new DataSet();
    da.Fill(ds,"administrateur");
    // Declare a reusable update
    command with parameters
    da.UpdateCommand = c.connex.CreateCommand();
    da.UpdateCommand.CommandText = "update administrateur set login_admin =" + login_admin + ",pwd_admin" + @pwd_admin;
    da.UpdateCommand.Parameters.Add("login_admin",SqlDbType.Char);
    da.UpdateCommand.Parameters.Add("pwd_admin",SqlDbType.Char);
    }
    cette fonction ne marche pas, un contact m'a dit qu'il faut utiliser ça:

    DataRowView
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thisRow=((DataRowView)((BindingSource).Current).Row;
    ( BindingSource c la source de donnée qu'il le passe pour le datagrid
    cette ligne connait la ligne qui a changé a partir de datagrid puis il fait un cast a l'objet retourné pour qu'il soit un objet DataRowView dans cet objet il trouvera tous les attribue de la ligne modifiée
    il suffit de parcourir cette ligne en utilisant la methode itemArray[indice de colonne]
    comme ça il aura tous ces attribue il cree un dataAdapter et une methode update, dans la methode update il definie les attribu qu'il veux les modifier
    puis il appel son dataAdapter, par exemple:

    MonDataAdapter.MonUpdate( att1,att2,att3,att4);

    comme ça ces attribue seront changés dans son source de donné soit il travaille directement avec une table dans la base
    soit dans le dataSet" )




    Mais j'ai pas su utiliser ça

    2- Essai pour la fonction delete:

    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
    public void MyDeleteMethod(string login_admin)
    {
    connexion c = new connexion();
     
    string queryString = "DELETE FROM Administrateur WHERE Login_admin = @Login_admin";
    System.Data.IDbCommand dbCommand = size=2>new System.Data.SqlClient.SqlCommand();
    dbCommand.CommandText = queryString;
    dbCommand.Connection = c.connex;
    System.Data.IDataParameter dbParam_login_admin = new System.Data.SqlClient.SqlParameter();
    dbParam_login_admin.ParameterName = "Login_admin";
    dbParam_login_admin.Value = login_admin;
    dbParam_login_admin.DbType = System.Data.DbType.String;
    dbCommand.Parameters.Add(dbParam_login_admin);
    dbCommand.ExecuteNonQuery();
    c.CloseConnection();
     
    }
    Cette fonction marche qu'on je l'appelant dans un bouton dans l'une de mes pages et quand j'ai introduit une chaine de caractère par exemple: MyDeleteMethod('admin') mais elle ne marche pas en l'utilisant dans le GridView c'est à dire en l'appelant à partir du business object.

    Désolée le mail est trop long, mais j'ai écrit ça pour que vous pouviez saisir le probléme.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    da.UpdateCommand.Parameters.Add("login_admin",SqlDbType.Char);
    da.UpdateCommand.Parameters.Add("pwd_admin",SqlDbType.Char);
    Pourquoi définir des paramètres alors que tu ne les utilises pas dans ta requête ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

Discussions similaires

  1. [Débutant] Problème DatagridView la propriété CurrentRow
    Par kh.akram09 dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/03/2012, 18h47
  2. Problème datagridview virtualmode
    Par Aurélien19 dans le forum C#
    Réponses: 4
    Dernier message: 01/10/2008, 09h20
  3. [C#] Datagridview, dataset, etc Problème de refresh
    Par nitrous007 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/12/2006, 14h01
  4. [VB.NET] Problème de rafaichissement du datagridview
    Par thierry007 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/12/2006, 01h59
  5. Problème de remplissage d'un datagridview VB 2005
    Par Bam513 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/05/2006, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo