Bonjour à tous,
Voila, je commence depuis peu à coder en VB.Net donc il est difficile pour moi de trouver mes errreurs donc si vous pourriez m'aider ou me conseiller... !
Pour commencer, je crée une application avec Accès ADO permettant de Gérer des tournoi de jeux vidéos.
1) Pour commencer, quand je veux afficher ma requete dans le Datagrid cela ne fonctionne pas, pourtant avec toutes mes autres requêtes je n'ai pas de probleme, VB 2005 me renvoit l'erreur suivante :
Échec de IErrorInfo.GetDescription avec E_FAIL(0x80004005).
Je vous donne le code :
Private Sub frm_eswc_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'TODO : cette ligne de code charge les données dans la table 'LANDataSet.Participer'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
Me.ParticiperTableAdapter.Fill(Me.LANDataSet.Participer)
'TODO : cette ligne de code charge les données dans la table 'LANDataSet.Equipe'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
Me.EquipeTableAdapter.Fill(Me.LANDataSet.Equipe)
Me.MdiParent = MDIPrincipal
Dim Ssql As String
Dim Ttable As String
Ttable = "Equipe"
Ssql = "SELECT Equipe.Nom_Equipe, Equipe.Tag_Equipe "
Ssql &= "FROM Type_TN INNER JOIN (Tournoi INNER JOIN (Equipe INNER JOIN Participer ON Equipe.Num_Equipe = Participer.Num_Equipe) ON Tournoi.Num_Tournoi = Participer.Num_Tournoi) ON Type_TN.Num_Type_TN = Tournoi.Num_Type "
Ssql &= "WHERE (((Participer.Position)=1) AND ((Type_TN.Nom_Type_TN)=""Premiere_Series""));"
affiche(Ssql, Ttable)
FormerDataEquipeFrance()
Me.DataEquipe.ReadOnly = True
End Sub
Sub FormerDataEquipeFrance()
frm_eswc.DataEquipe.DataSource = ObjetDataTable
frm_eswc.SuspendLayout()
Dim dgTableStyle As New DataGridTableStyle()
Dim dgColumnStyle As DataGridColumnStyle
'Colonne Nom Equipe
dgColumnStyle = New DataGridTextBoxColumn()
dgColumnStyle.Width = 100
dgColumnStyle.MappingName = "Nom_Equipe"
dgColumnStyle.HeaderText = "Nom Equipe"
dgTableStyle.GridColumnStyles.Add(dgColumnStyle)
'Colonne Tag Equipe
dgColumnStyle = New DataGridTextBoxColumn()
dgColumnStyle.Width = 100
dgColumnStyle.MappingName = "Tag_Equipe"
dgColumnStyle.HeaderText = "Tag Equipe"
dgTableStyle.GridColumnStyles.Add(dgColumnStyle)
dgTableStyle.MappingName = "Equipe"
Try
frm_eswc.DataEquipe.TableStyles.Add(dgTableStyle)
Catch ex As Exception
End Try
frm_eswc.ResumeLayout()
End Sub
Sub affiche(ByVal Ssql As String, ByVal Ttable As String)
Dim ObjetCB As OleDb.OleDbCommandBuilder
Try
'On vide le DataSet pour éviter de voir plusieurs fois les memes données dans le datagrid
ObjetDataSet.Clear()
OuvrirConnexion()
ObjetCommand = New OleDb.OleDbCommand(Ssql)
'Instancier un objet Adapter
ObjetDataAdapter = New OleDb.OleDbDataAdapter(ObjetCommand)
'initialiser l'objet Command
ObjetCommand.Connection = cnLan
'initialiser l'objet OleCBComandBuilder (sinon pas d'update)
ObjetCB = New OleDb.OleDbCommandBuilder(ObjetDataAdapter)
'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
ObjetDataAdapter.Fill(ObjetDataSet, Ttable)
'Créer une datatable à partir du dataset
ObjetDataTable = ObjetDataSet.Tables(Ttable)
'Mettre dans le DataGrid une table DataTable
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
2) Mon second problème est que je ne sais pas comment remplir mon datagrid avec une requête ou encore avec plusieurs tables à la fois, si vous avez des exemples de code j'en serais ravi car je ne sais pas du tout comment faire
3) Existe - t - il un SQLCode sous VB.NET pour voir si une requête renvoit un enregistrement ? si oui comment l'utiliser ?
4) Pour finir, j'ai un probleme lors d'un ajout d'une table alors que sur les autres tables je n'ai pas de probleme, l'erreur est la suivante :
Erreur de syntaxe dans l'instruction INSERT INTO
Voici le code associé :
Sub Participation()
Dim Table As String
ObjetDataSet.Clear()
Try
Table = "Participer"
Debut(Table)
ObjetDataRow = ObjetDataSet.Tables(Table).NewRow()
ObjetDataRow("Num_Tournoi") = frm_participation.cb_tn.SelectedValue
ObjetDataRow("Num_Equipe") = frm_participation.cb_equipej.SelectedValue
ObjetDataRow("Position") = 0
ObjetDataRow("GainEuros") = 0
ObjetDataSet.Tables(Table).Rows.Add(ObjetDataRow)
ObjetCommandBuilder = New OleDb.OleDbCommandBuilder(ObjetDataAdapter)
ObjetDataAdapter.Update(ObjetDataSet, Table)
'On vide le DataSet et on le 'recharge' de nouveau.
ObjetDataSet.Clear()
ObjetDataAdapter.Fill(ObjetDataSet, Table)
ObjetDataTable = ObjetDataSet.Tables(Table)
MsgBox("Enregistrement Effectué !", MsgBoxStyle.Information, "Confirmation")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Sub Debut(ByVal Nomtable As String)
Dim strSql As String
strSql = "SELECT * FROM " & Nomtable
'Instancier un objet Commande
ObjetCommand = New OleDb.OleDbCommand(strSql)
'Instancier un objet Adapter
ObjetDataAdapter = New OleDb.OleDbDataAdapter(ObjetCommand)
'initialiser l'objet Command
ObjetCommand.Connection() = cnLan
'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
ObjetDataAdapter.Fill(ObjetDataSet, Nomtable)
'Mettre dans un Objet DataTable une table du DataSet
ObjetDataTable = ObjetDataSet.Tables(Nomtable)
End Sub
Voila tout, merci d'avance à toutes les personnes qui pourront m'aider
Partager