ADO.NET INSERT DELETE UPDATE refresh des composants graphic
Bonjour tout le monde.
Je suis nouveau sur developpez.com donc pardonnez moi si je n'utilise pas le forum correctement.
J'ai une question concernant ADO.NET qui est assez basic mais cependant très importante.
Je suis en train de développez une application windows tout ce qu'il y à de plus normal. Je dois pour ce projet utiliser une librairie spécial qui à été concu depuis les dataBase factory (paterns de microsoft) et qui à été quelque peu modifiée.
Je travail en écrivant mes requêtes donc sans automatiser quoi que ce soit.
J'ai un dataAdapter à qui je passe ma requête "INSERT INTO xy (z) Value ("")"
puis je passe cet adapter à une méthode qui effectue l'insertion. Cette méthode ce connecte et se déconnecte de la base de données.
Directement après j'effectue un SELECT * FROM xy depuis une Fonction qui me retourne un dataSet que je Bind à une dataGrid afin de mettre à jour mon composant graphique.
Grid.DataSource = DataSet.
Le problème semble que la base de donnée n'est pas encore mise à jours. Par conséquent lorsque je récupère mes données dans le dataSet mon insert n'est pas encore enregistré. Si je fais un refresh quelque millisecondes plus tard mes données sont affichées correctement. Je pourrais utiliser une méthode qui patiente quelque milliseconde mais cela ne me paraît pas correcte et il pourrait y avoir un risque d'erreur si je n’attends pas suffisamment.
Donc si je récapitule le tout voilà ce que je fais.
1) Insert into en passant par un adapteur.
2) recharge les données depuis la database (DataSet)
!!!!!!!! Problème car le select pour remplir mon dataSet ne charge pas
les données qui viennent d’être insérée.
3) Je les affiche dans une dataGrid (bind ma grille au dataSet)
Quelqu'un pourrait-il m'éclairé afin d'afficher correctement les données dans ma dataGrid.
Merci d'avance de vos réponse et à bientôt. Jeriko
Est-ce que la façon de procéder est correcte ?
Pas de réponse :cry: ! Pas d'avis! Pas de dialogue!
Laissez votre point de vue comme ça je pourrai avancer!
Merci et à +
Je recharge toutes les données depuis la DB
''' Je recharge toutes les données depuis la DB
Code:
1 2 3 4 5 6 7
| Public Function GetDMSGridDataSet() As DataSet
Dim dsResult As DataSet = New DataSet
Dim sqlCommand As String = "SELECT * FROM DM_T;"
Dim dbCommandWrapper As clsDBCommandWrapper = Me.objDataBase.GetSqlStringCommandWrapper(sqlCommand)
dsResult = Me.objDataBase.ExecuteDataSet(dbCommandWrapper)
Return dsResult
End Function |
''' Je bind mon dataSet à ma Grille
Code:
1 2 3 4 5 6
| Private Sub BindGridToDM_T(ByVal ds As DataSet)
Dim iCounter As Integer = 0
Dim dataTable As dataTable = ds.Tables("Table")
Me.ulGridDoucments.SetDataBinding(ds, "Table")
Dim band As UltraGridBand = Me.ulGridDoucments.DisplayLayout.Bands(0)
End sub |
Je fais cela pour chaque update insert delete!