Vb2005 datagrid app smart device

Résolu
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 - 10 mai 2007 à 15:34
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 - 21 mai 2007 à 09:23
Bonjour à tous,
quelqu'un pourrait-il m'expliquer comment ajouter des données à un datagrid pour les projet smart device avec windows CE 5.0 ?
Mon problème est que j'ai mis un datagrid sur mon formulaire et je n'arrive pas à le remplire. J'ai une base de données SQL Server CE où j'arrive bien à me connecter et je voudrais remplir le grid sur base d'un sqlcecommand (autrement dit une requête SQL).
Est-ce possible et si oui comment ?
Merci pour votre aide éventuelle et vos réponse !

 pseudoOM

2 réponses

pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
21 mai 2007 à 09:18
OK j'ai résolu le problème. En fait par défaut il mettait la dataset du projet comme datasource du datagrid. Hors au lancement de l'application le dataset est vide donc forcément le datagrid se rempli avec rien. et comme on ne peut pas mettre à jour la propriété datasource rien ne se passe.
J'ai donc mis la propriété datasource à vide et je le rempli avec un table dans le code. Ensuite si je veux mettre à jour, je passe datasource à nothing et je réassigne la dataTable mise à jour au datasource du datagrid.

Private Sub Remplir_Grille()
        Dim sql_Command As System.Data.SqlServerCe.SqlCeCommand
        Dim Command_Reader As System.Data.SqlServerCe.SqlCeDataReader

        dgd_Materiel.DataSource = Nothing
        Table_Inv.Clear()
        sql_Command = Connect_CE.CreateCommand()
        sql_Command.CommandText = "Select * From table Where champ='" & str_ID & "' Order By ID"
        Command_Reader = sql_Command.ExecuteReader
        Do While Command_Reader.Read
            Table_Inv.Rows.Add(New Object() {Command_Reader("ID")})
        Loop
        Table_Inv.AcceptChanges()

        Command_Reader.Dispose()
        sql_Command.Dispose()
        dgd_Materiel.DataSource = Table_Inv

        dgd_Materiel.Refresh()
End Sub

Pour créer la table je fait comme ça dans le load du formulaire

Private Sub Creer_Table()
        Dim IdColumn As System.Data.DataColumn

        Table_Inv = New System.Data.DataTable
        Table_Inv.TableName = "Inv"

        ' Creer les colonnes
        IdColumn = Table_Inv.Columns.Add("ID", GetType(String))
       
        ' J'assigne la colonne ID comme clé primaire
        Table_Inv.PrimaryKey = New System.Data.DataColumn() {IdColumn}

        ' Dans mon cas cette ligne n'est pas obligatoire vu que finalement je n'utilise pas le dataset
        GIP_CE_DataSet.Tables.Add(Table_Inv)
End Sub

 pseudoOM
3
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
21 mai 2007 à 09:23
J'ai oublié de mettre que j'ai déclaré la table en variable globale pour pouvoir l'utiliser partout dans le formulaire.
public Table_Inv As System.Data.DataTable

 pseudoOM
3
Rejoignez-nous