Gwendal3
Messages postés60Date d'inscriptionsamedi 4 mars 2006StatutMembreDernière intervention15 août 2011
-
5 nov. 2006 à 10:31
Gwendal3
Messages postés60Date d'inscriptionsamedi 4 mars 2006StatutMembreDernière intervention15 août 2011
-
21 nov. 2006 à 18:17
Bonjour,
J'ai parcouru le forum, l'aide VS, mais je ne trouve pas de réponses à mon problème.
J'attaque une Access, j'ai un DataSet et autant de DataAdapter que de Tables.... Mon DataSet est bien chargé.
Je cherche donc à récupérer le ID du dernier insère.
J'ai trouvé ce morceau de code dans l'aide VS.
stDernierID est une variable public, ou j'indique le champ ID.
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
Public Sub OnRowUpdated(ByVal sender As Object, ByVal args As OleDbRowUpdatedEventArgs)
Dim newID As Integer = 0
Dim idCMD As OleDbCommand = New OleDbCommand( _
"SELECT @@IDENTITY", objConnexion)
If args.StatementType = StatementType.Insert Then
' Retrieve the identity value and store it in the CategoryID column.
newID = CInt(idCMD.ExecuteScalar())
args.Row(strDernierID) = newID
End If
End Sub
<!-- END TEMPLATE: bbcode_code -->
Mon code:
Ajout du chauffeur
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
Private Sub AjoChauffeur()
'try
'Ouvrir la connexion
objConnexion.Open()
' Création de la nouvelle ligne
objDataRowChauffeur = objDataSet.Tables("TblChauffeur").NewRow()
' Remplir les champs
objDataRowChauffeur("NPermis") = Me.txtNPermis.Text If (Me.txtIDRepertoireChauffeur.Text "") Then : objDataRowChauffeur("ID_TblRepertoire") DBNull.Value : Else : objDataRowChauffeur("ID_TblRepertoire") = Me.txtIDRepertoireChauffeur.Text : End If
objDataRowChauffeur("DateObtention") = Me.dtmpDateObtentionChauffeur.Text
' Ajout de la ligne à la table
objDataSet.Tables("TblChauffeur").Rows.Add(objDataRowChauffeur)
'Pour modifier les valeurs changées dans le DataAdapter
objCommandBuilder = New OleDb.OleDbCommandBuilder(objDataAdapterChauffeur)
' Récupérer l'ID de l'ajout
strDernierID = "ID_Chauffeur"
AddHandler objDataAdapterChauffeur.RowUpdated, _
New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
' Mise à jour
objDataAdapterChauffeur.Update(objDataSet, "TblChauffeur")
'Catch ex As Exception
'Message d'erreur
' MessageBox.Show(ex.ToString, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
'Finally
'Fermer la connexion
objConnexion.Close()
'End Try
End Sub
<!-- END TEMPLATE: bbcode_code -->
Ajout de l'agence
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
Private Sub AjoAgence()
'try
'Ouvrir la connexion
objConnexion.Open()
' Création de la nouvelle ligne
objDataRowAgence = objDataSet.Tables("TblAgence").NewRow()
' Remplir les champs If (Me.txtIDRepertoireAgence.Text "") Then : objDataRowAgence("ID_TblRepertoire") DBNull.Value : Else : objDataRowAgence("ID_TblRepertoire") = Me.txtIDRepertoireAgence.Text : End If
' Ajout de la ligne à la table
objDataSet.Tables("TblAgence").Rows.Add(objDataRowAgence)
'Pour modifier les valeurs changées dans le DataAdapter
objCommandBuilder = New OleDb.OleDbCommandBuilder(objDataAdapterAgence)
' Récupérer l'ID de l'ajout
strDernierID = "ID_Agence"
AddHandler objDataAdapterAgence.RowUpdated, _
New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
' Mise à jour
objDataAdapterAgence.Update(objDataSet, "TblAgence")
'Catch ex As Exception
'Message d'erreur
' MessageBox.Show(ex.ToString, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
'Finally
'Fermer la connexion
objConnexion.Close()
'End Try
End Sub
<!-- END TEMPLATE: bbcode_code -->
Il y a un 3ème Private AjoAssurance, qui ressemble au deux premier.
Je lance dans cette ordre: AjoChauffeur, AjoAssurance, AjoAgence.
Mon objconnexion reste bien ouvert tout du long d'une procédure.
En debug pas à pas, le code parcourt bien entièrement OnRowUpdated.
OnRowUpdated fonctionne bien pour AjoAgence, mais me renvois 0 pour les autres.
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 5 nov. 2006 à 13:18
Salut,
Il faudrait que tu publies ton projet en entier pour qu'on puisse vraiment comprendre.
Sinon, comme ca à première vue :
- Essaye plutôt de travailler en mode déconnecté et d'updater en fin de saisie
- Crée une classe métier ou mieux un interface, indépendante de la manière de modifier les donnéesce qui aérera ton code et te permettra de tester différentes implémentation de cette interface sans rien changer autour...
- Créer des fonctions génériques de traitement des tables (tu passes le nom de la table en paramètre)
- Tu peux te passer de l'uilisation des ID si tu gère le contrôle des données saisies au niveau des évenements de l'interface.
Mais, bon je vais regarder quand même ton code plus en détail pour voir si je peux voir ou ca bloque.
Gwendal3
Messages postés60Date d'inscriptionsamedi 4 mars 2006StatutMembreDernière intervention15 août 2011 5 nov. 2006 à 13:54
Bonjour,
Merci pour le coup d'oeil. Je débute en VB.Net. Je me débrouillais bien en VBA sous Access, mais VB est quand même plus complexe. Faut juste prendre le coup.
Sinon, comme ca à première vue :
- Essaye plutôt de travailler en mode déconnecté et d'updater en fin de saisie
Je pensais travailler en mode déconnecté .
A l'ouverture du formulaire je charge dans un DataSet les tables dont j'ai besoin en filtrant les requêtes avec WHERE CampID = -1 A la fin de la saisie je mets à jour les tables.
-
Crée une classe métier ou mieux un interface, indépendante de la
manière de modifier les donnéesce qui aérera ton code et te permettra
de tester différentes implémentation de cette interface sans rien
changer autour...
Arf... Je débute... J'ai bien fait une fonction qui me permet de charger le DataSet, mais pour une classe ....
- Créer des fonctions génériques de traitement des tables (tu passes le nom de la table en paramètre)
- Tu peux te passer de l'uilisation des ID si tu gère le contrôle des données saisies au niveau des évenements de l'interface.
Pour ce qui du reste du code.
Les Variables déclarées:
<hr size="2" width="100%" />#Region " Déclaration des variables"
#Region " Variables de connexions "
' Déclaration Objet Connexion
Private objConnexion As OleDbConnection
' Paramètres de connexion à la base
Private strConnexion As String
' Déclaration Objet Commande
Private objCommand As OleDbCommand
' Pour recompiler les données modifiées avant de les remettre dans le "DataAdapter"
Private objCommandBuilder As OleDbCommandBuilder
' Déclaration Objet DataSet
Private objDataSet As New DataSet()
#End Region
#Region " Variables Véhicule "
' String contenant la 'Requête SQL'
Private strFiltreVehicule As String
' Déclaration Objet DataAdapter
Private objDataAdapterVehicule As OleDbDataAdapter
' Déclaration Objet DataTable
Private objDataTableVehicule As DataTable
' Déclaration Objet DataRow (ligne)
Private objDataRowVehicule As DataRow
'Numéro de la ligne en cours
Private RowNumberVehicule As Integer
#End Region
#Region " Variables Chauffeur "
' String contenant la 'Requête SQL'
Private strFiltreChauffeur As String
' Déclaration Objet DataAdapter
Private objDataAdapterChauffeur As OleDbDataAdapter
' Déclaration Objet DataTable
Private objDataTableChauffeur As DataTable
' Déclaration Objet DataRow (ligne)
Private objDataRowChauffeur As DataRow
'Numéro de la ligne en cours
Private RowNumberChauffeur As Integer
#End Region
#Region " Variables Assurance "
' String contenant la 'Requête SQL'
Private strFiltreAssurance As String
' Déclaration Objet DataAdapter
Private objDataAdapterAssurance As OleDbDataAdapter
' Déclaration Objet DataTable
Private objDataTableAssurance As DataTable
' Déclaration Objet DataRow (ligne)
Private objDataRowAssurance As DataRow
'Numéro de la ligne en cours
Private RowNumberAssurance As Integer
#End Region
#Region " Variables Agence "
' String contenant la 'Requête SQL'
Private strFiltreAgence As String
' Déclaration Objet DataAdapter
Private objDataAdapterAgence As OleDbDataAdapter
' Déclaration Objet DataTable
Private objDataTableAgence As DataTable
' Déclaration Objet DataRow (ligne)
Private objDataRowAgence As DataRow
'Numéro de la ligne en cours
Private RowNumberAgence As Integer
#End Region
<hr size="2" width="100%" />
Les fonctions
<hr size="2" width="100%" />Private Sub OnRowUpdated(ByVal sender As Object, ByVal args As OleDbRowUpdatedEventArgs)
Dim newID As Integer = 0
Dim idCMD As OleDbCommand = New OleDbCommand( _
"SELECT @@IDENTITY", objConnexion)
If args.StatementType = StatementType.Insert Then
' Retrieve the identity value and store it in the CategoryID column.
newID = CInt(idCMD.ExecuteScalar())
args.Row(strDernierID) = newID
End If
End Sub
<hr size="2" width="100%" />Public Sub RemplirDataSet(ByVal strSqlFiltre As String, ByRef PassDataAdapter As OleDbDataAdapter, _
ByVal PassDataSet As DataSet, ByRef PassDataTable As DataTable, _
ByVal PassNomtable As String)
Try
'Initialisation de la chaîne de paramètres pour la connexion
strConnexion = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & Application.StartupPath & "\Source\Parc Vehicule.mdb;"
'Instanciation d'un objet Connexion
objConnexion = New OleDbConnection()
'Donner à la propriété ConnectionString les paramètres de connexion
objConnexion.ConnectionString = strConnexion
'Ouvrir la connexion
objConnexion.Open()
'Instancier un objet Commande
objCommand = New OleDbCommand(strSqlFiltre)
'Instancier un objet Adapter
PassDataAdapter = New OleDbDataAdapter(objCommand)
'Initialiser l'objet Command
objCommand.Connection() = objConnexion
'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
PassDataAdapter.Fill(PassDataSet, PassNomtable)
'Mettre dans un objet DataTable une table du DataSet
PassDataTable = PassDataSet.Tables(PassNomtable)
Catch ex As Exception
'Message d'erreur
MessageBox.Show(ex.ToString, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
' Fermer la connexion
objConnexion.Close()
End Try
End Sub
<hr size="2" width="100%" /> Private Sub AjoAssurance()
'Sub permettant d'enregsitrer (ou de modifier) un enregsitrement
'Try
'Ouvrir la connexion
objConnexion.Open()
' Création de la nouvelle ligne
objDataRowAssurance = objDataSet.Tables("TblAssurance").NewRow()
' Remplir les champs
objDataRowAssurance("NContrat") = Me.txtNContratAssurance.Text
objDataRowAssurance("ValableDu") = Me.dtmpValableDuAssurance.Text
objDataRowAssurance("ValableAu") = Me.dtmpValableAuAssurance.Text If (Me.txtIDRepertoireAssurance.Text "") Then : objDataRowAssurance("ID_TblRepertoire") DBNull.Value : Else : objDataRowAssurance("ID_TblRepertoire") = Me.txtIDRepertoireAssurance.Text : End If
' Ajout de la ligne à la table
objDataSet.Tables("TblAssurance").Rows.Add(objDataRowAssurance)
'Pour modifier les valeurs changées dans le DataAdapter
objCommandBuilder = New OleDb.OleDbCommandBuilder(objDataAdapterAssurance)
' Récupérer l'ID de l'ajout
strDernierID = "ID_Assurance"
AddHandler objDataAdapterAssurance.RowUpdated, _
New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
' Mise à jour
objDataAdapterAssurance.Update(objDataSet, "TblAssurance")
'Catch ex As Exception
'Message d'erreur
' MessageBox.Show(ex.ToString, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
'Finally
'Fermer la connexion
objConnexion.Close()
'End Try
End Sub
<hr size="2" width="100%" />
Private Sub AjoChauffeur()
'Sub permettant d'enregsitrer (ou de modifier) un enregsitrement
'try
'Ouvrir la connexion
objConnexion.Open()
' Création de la nouvelle ligne
objDataRowChauffeur = objDataSet.Tables("TblChauffeur").NewRow()
' Remplir les champs
objDataRowChauffeur("NPermis") = Me.txtNPermis.Text If (Me.txtIDRepertoireChauffeur.Text "") Then : objDataRowChauffeur("ID_TblRepertoire") DBNull.Value : Else : objDataRowChauffeur("ID_TblRepertoire") = Me.txtIDRepertoireChauffeur.Text : End If
objDataRowChauffeur("DateObtention") = Me.dtmpDateObtentionChauffeur.Text
' Ajout de la ligne à la table
objDataSet.Tables("TblChauffeur").Rows.Add(objDataRowChauffeur)
'Pour modifier les valeurs changées dans le DataAdapter
objCommandBuilder = New OleDb.OleDbCommandBuilder(objDataAdapterChauffeur)
' Récupérer l'ID de l'ajout
strDernierID = "ID_Chauffeur"
AddHandler objDataAdapterChauffeur.RowUpdated, _
New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
' Mise à jour
objDataAdapterChauffeur.Update(objDataSet, "TblChauffeur")
'Catch ex As Exception
'Message d'erreur
' MessageBox.Show(ex.ToString, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
'Finally
'Fermer la connexion
objConnexion.Close()
'End Try
End Sub
<hr size="2" width="100%" /> Private Sub AjoAgence()
'Sub permettant d'enregsitrer (ou de modifier) un enregsitrement
'try
'Ouvrir la connexion
objConnexion.Open()
' Création de la nouvelle ligne
objDataRowAgence = objDataSet.Tables("TblAgence").NewRow()
' Remplir les champs If (Me.txtIDRepertoireAgence.Text "") Then : objDataRowAgence("ID_TblRepertoire") DBNull.Value : Else : objDataRowAgence("ID_TblRepertoire") = Me.txtIDRepertoireAgence.Text : End If
' Ajout de la ligne à la table
objDataSet.Tables("TblAgence").Rows.Add(objDataRowAgence)
'Pour modifier les valeurs changées dans le DataAdapter
objCommandBuilder = New OleDb.OleDbCommandBuilder(objDataAdapterAgence)
' Récupérer l'ID de l'ajout
strDernierID = "ID_Agence"
AddHandler objDataAdapterAgence.RowUpdated, _
New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
' Mise à jour
objDataAdapterAgence.Update(objDataSet, "TblAgence")
'Catch ex As Exception
'Message d'erreur
' MessageBox.Show(ex.ToString, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
'Finally
'Fermer la connexion
objConnexion.Close()
'End Try
End Sub
<hr size="2" width="100%" />
Au chargement du formulaire, je charge dans le dataSet les tables
<hr size="2" width="100%" /> 'Remplir le DataSet
' Table Véhicule strFiltreVehicule "SELECT * FROM Tbl_Vehicule WHERE ID_Vehicule " & intIDTblVehicule
RemplirDataSet(strFiltreVehicule, objDataAdapterVehicule, objDataSet, objDataTableVehicule, "TblVehicule")
' Table Assurance strFiltreAssurance "SELECT * FROM Tbl_Assurance WHERE ID_Assurance -1"
RemplirDataSet(strFiltreAssurance, objDataAdapterAssurance, objDataSet, objDataTableAssurance, "TblAssurance")
' Table Chauffeur strFiltreChauffeur "SELECT * FROM Tbl_Chauffeur WHERE ID_Chauffeur -1"
RemplirDataSet(strFiltreChauffeur, objDataAdapterChauffeur, objDataSet, objDataTableChauffeur, "TblChauffeur")
' Table Agence strFiltreAgence "SELECT * FROM Tbl_Agence WHERE ID_Agence -1"
RemplirDataSet(strFiltreAgence, objDataAdapterAgence, objDataSet, objDataTableAgence, "TblAgence")
<hr size="2" width="100%" />
Sur le bouton ajouter:
<hr size="2" width="100%" /> ' Ajouter le Chauffeur
AjoChauffeur()
' Ajouter l'Agence
AjoAgence()
' Ajouter l'Assurance
AjoAssurance()
' Ajouter le Véhicule
AjoVehicule()
<hr size="2" width="100%" />
Voilà.... Je suis preneur de tous conseils.... (Classes, chargement de données, ... )
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 11 nov. 2006 à 18:51
Salut,
Malgré mes efforts sincères, je n'arrive toujours pas à comprendre pourquoi tu n'as pas rendu plus "générique" tes classes
- En créant une seule classe que tu instanciera autant de fois qu'il faut (pour le chauffeur, pour l'assurance....)
- En créant une seule form avec sa datagrid que tu instanciera autant de fois etc...
En remplacant tes AjoChauffeur, AjoAssurance .... par une fonction Ajout dans ta classe.
...Sinon, dis moi pourquoi tu as besoin du dernier ID inséré, je te dirais comment t'en passer !
..D'ailleurs, y a un truc byzare aussi dans tes "SELECT ....WHERE ID_Agence = -1"
Ca veux dire que tu crée des enregistrements dont les clé étrangères sont à -1 par défaut. L'idée pour ce genre de chôse c'est d'habitude d'interdire de valider un enregistrement si les clés étrangères ne sont pas valides !
Et si tes ID (dont tu veux trouver le dernier) sont des numéros auto, il suffit de récuperer l'id avec une bonne requète sql :
du genre :
"SELECT TOP 1 ID as dernierID from Chauffeur order by ID DESC;"
et la requête te renvoie une seule ligne qui contient le précieux ID.
Gwendal3
Messages postés60Date d'inscriptionsamedi 4 mars 2006StatutMembreDernière intervention15 août 2011 12 nov. 2006 à 12:22
Salut,
Je débute et je voudrais prendre les bons automatismes dès le début. J'ai bien lu 2 bookins mais le problème s'est qu'ils expliquent juste les fonctions et comment s'en servir .....
Malgré mes efforts sincères, je n'arrive toujours pas à comprendre pourquoi tu n'as pas rendu plus "générique" tes classes
- En créant une seule classe que tu instanciera autant de fois qu'il faut (pour le chauffeur, pour l'assurance....)
- En créant une seule form avec sa datagrid que tu instanciera autant de fois etc...
En remplacant tes AjoChauffeur, AjoAssurance .... par une fonction Ajout dans ta classe.
En fait il faudrait que je créé une classe (connexion, chargement dataset, ajout, modif, suppression,...) comme cele-ci ?
441 http://www.c2i.fr/code.aspx?IDCode=441 Que je fasse les ajout, modif, suppression par requête et puis créé un obket command executesql ?
...Sinon, dis moi pourquoi tu as besoin du dernier ID inséré, je te dirais comment t'en passer !
Voici l'architecture de la base:
Tbl_Vehicule
ID_Vehicule NuméroAuto
Divers champs ...
ID_TblAgence Numérique
ID_TblAssurance Numérique ID_TblChauffeur Numérique Tbl_Agence
ID_Agence NuméroAuto Divers champs ...
Les tables Assurance, Chauffeur, Agence ont une liaison 1 à Inf. avec la table Tbl_Vehicule.
Dans mon projet, j'ai créé un formulaire ou l'utilisateur entra
les informations sur le véhicule
les informations sur l'assurance du véhicule
....
Donc en récupérant les derniers ID des tables Assurance, Chauffeur, Agence je peux renseigner les champs ID_TblAgence, ID_TblAssurance, ID_TblChauffeur de la table Tbl_Vehicule et mettre à jour la base.
..D'ailleurs, y a un truc byzare aussi dans tes "SELECT ....WHERE ID_Agence = -1"
Ca
veux dire que tu crée des enregistrements dont les clé étrangères sont
à -1 par défaut. L'idée pour ce genre de chôse c'est d'habitude
d'interdire de valider un enregistrement si les clés étrangères ne sont
pas valides !
Pour ajouter un enregistrement, je suis parti du principe qu'importer tous les enregistrements dans le DataSet pouvait être lourd, et donc en utilisant WHERE ID = -1 j'importais dans le DataSet des tables sans enregistrement.
Et si tes ID (dont tu veux trouver le dernier) sont des numéros auto, il suffit de récuperer l'id avec une bonne requète sql :
du genre :
"SELECT TOP 1 ID as dernierID from Chauffeur order by ID DESC;"
et la requête te renvoie une seule ligne qui contient le précieux ID.
Je connaissais le principe pour l'avoir utiliser dans Access .
Une nouvelle fois grand merci pour les infos.
Gwendal
Vous n’avez pas trouvé la réponse que vous recherchez ?
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 12 nov. 2006 à 12:34
Bonjour,
- Oui pour l'utilisation de type de classe du lien c2i.fr
- Ne t'occupes pas (dans un premier temps) du volume de données mises en mémoire, ca ne fait que compliquer le problème.
- les tables qui sont du côté "plusieurs" dans une relation "de 1 à plusieurs" doivent toujours être renseignées AVANT.
Autrement dit, si un chauffeur n'éxistait pas avant la création de ton véhicule, il ne peut pas être disponnible au moment de la saisie d'un nouveau véhicule. La création d'un nouveau chauffeur "à la volée" est possible, mais tu ne dois pas t'en préoccuper au stade ou tu en es.
- Tu dois au maximum simplifier les règles de 'l'univers" dans lequel tu travailles, quitte à les compliquer une fois que tu as réglés tous les problèmes à ce stade.
- Tu en sais assez pour faire ton appli, mais tu part d'une structure trop complexe.
- Essaye de travailler en "mode déconnecté" ca te permettra de mettre la mise à jour des tables dans une étape distincte du reste.
nzambi
Messages postés10Date d'inscriptionlundi 3 octobre 2005StatutMembreDernière intervention28 décembre 2006 21 nov. 2006 à 13:02
je suis un débutant sur VB .Net, mais à l'aide des cours télécharger sur le net, je m'ensort maintenant un peu bien, mais n'empêche qu'il y ai encore de p'tits pb. Je suis sur un p'tit programme qui gère les emplois du temps d'une école par rapport au nombre de salles dispo. Dans ma BDD (access) j'ai une tabale Matière (TblMatiere), je veux charger des données de cette table dans un combobox, mais je n'arrive pas. Voici mon code
Private
Cmd
As
New
OleDbCommand
Private
Conn
As
New
OleDbConnection
Private
data
As
New
OleDbDataAdapter
Private
datat
As
New
DataTable
Private
dataSet
As
New
dataSet
Private
StrSql
As
String
Dim
Cmd AsNew
OleDbCommand
'Initilisation de la chaîne de paramètres pour la connexion
OuvrirConnexion()
'Initialisation objet Connexion
Cmd.Connection =
New
OleDbConnection(Cn)
Cmd.CommandType = CommandType.Text
Cmd.CommandText = " SELECT * FROM TblMatiere"
Conn.Open()
'Initialiser l'objet Command
Cmd.Connection = Conn
data.SelectCommand = Cmd
data.Fill(dataSet, "TblMatiere")
' Avec l'aide de la propiréte Fill du DataAdapter charger le DataSet
' Mettre dans un objet DataTable une table du DataSet
datat = dataSet.Tables("TblMatiere")
'Indiquer au combobox d'afficher la table " TblMatière" (indiquer la source)
CmbMati.DataSource = dataSet.Tables("TblMatiere")
'Indiquer quelle colonne afficher
CmbMati.DataSource = datas.Tables("TblMatiere")
CmbMati.DisplayMember = "Libelle_Mat"
CmbMati.ValueMember = "Code_Mat"
CmbMati.Refresh()
Conn.Close()
mais quand j'exécute on m'affiche un message d'erreur: " La Propriété ConnectionString n'a pas été initialisée. "
nzambi
Messages postés10Date d'inscriptionlundi 3 octobre 2005StatutMembreDernière intervention28 décembre 2006 21 nov. 2006 à 13:02
je suis un débutant sur VB .Net, mais à l'aide des cours télécharger sur le net, je m'ensort maintenant un peu bien, mais n'empêche qu'il y ai encore de p'tits pb. Je suis sur un p'tit programme qui gère les emplois du temps d'une école par rapport au nombre de salles dispo. Dans ma BDD (access) j'ai une tabale Matière (TblMatiere), je veux charger des données de cette table dans un combobox, mais je n'arrive pas. Voici mon code
Private
Cmd
As
New
OleDbCommand
Private
Conn
As
New
OleDbConnection
Private
data
As
New
OleDbDataAdapter
Private
datat
As
New
DataTable
Private
dataSet
As
New
dataSet
Private
StrSql
As
String
Dim
Cmd AsNew
OleDbCommand
'Initilisation de la chaîne de paramètres pour la connexion
OuvrirConnexion()
'Initialisation objet Connexion
Cmd.Connection =
New
OleDbConnection(Cn)
Cmd.CommandType = CommandType.Text
Cmd.CommandText = " SELECT * FROM TblMatiere"
Conn.Open()
'Initialiser l'objet Command
Cmd.Connection = Conn
data.SelectCommand = Cmd
data.Fill(dataSet, "TblMatiere")
' Avec l'aide de la propiréte Fill du DataAdapter charger le DataSet
' Mettre dans un objet DataTable une table du DataSet
datat = dataSet.Tables("TblMatiere")
'Indiquer au combobox d'afficher la table " TblMatière" (indiquer la source)
CmbMati.DataSource = dataSet.Tables("TblMatiere")
'Indiquer quelle colonne afficher
CmbMati.DataSource = datas.Tables("TblMatiere")
CmbMati.DisplayMember = "Libelle_Mat"
CmbMati.ValueMember = "Code_Mat"
CmbMati.Refresh()
Conn.Close()
mais quand j'exécute on m'affiche un message d'erreur: " La Propriété ConnectionString n'a pas été initialisée. "
nzambi
Messages postés10Date d'inscriptionlundi 3 octobre 2005StatutMembreDernière intervention28 décembre 2006 21 nov. 2006 à 13:03
je suis un débutant sur VB .Net, mais à l'aide des cours télécharger sur le net, je m'ensort maintenant un peu bien, mais n'empêche qu'il y ai encore de p'tits pb. Je suis sur un p'tit programme qui gère les emplois du temps d'une école par rapport au nombre de salles dispo. Dans ma BDD (access) j'ai une tabale Matière (TblMatiere), je veux charger des données de cette table dans un combobox, mais je n'arrive pas. Voici mon code
Private
Cmd
As
New
OleDbCommand
Private
Conn
As
New
OleDbConnection
Private
data
As
New
OleDbDataAdapter
Private
datat
As
New
DataTable
Private
dataSet
As
New
dataSet
Private
StrSql
As
String
Dim
Cmd AsNew
OleDbCommand
'Initilisation de la chaîne de paramètres pour la connexion
OuvrirConnexion()
'Initialisation objet Connexion
Cmd.Connection =
New
OleDbConnection(Cn)
Cmd.CommandType = CommandType.Text
Cmd.CommandText = " SELECT * FROM TblMatiere"
Conn.Open()
'Initialiser l'objet Command
Cmd.Connection = Conn
data.SelectCommand = Cmd
data.Fill(dataSet, "TblMatiere")
' Avec l'aide de la propiréte Fill du DataAdapter charger le DataSet
' Mettre dans un objet DataTable une table du DataSet
datat = dataSet.Tables("TblMatiere")
'Indiquer au combobox d'afficher la table " TblMatière" (indiquer la source)
CmbMati.DataSource = dataSet.Tables("TblMatiere")
'Indiquer quelle colonne afficher
CmbMati.DataSource = datas.Tables("TblMatiere")
CmbMati.DisplayMember = "Libelle_Mat"
CmbMati.ValueMember = "Code_Mat"
CmbMati.Refresh()
Conn.Close()
mais quand j'exécute on m'affiche un message d'erreur: " La Propriété ConnectionString n'a pas été initialisée. "
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 21 nov. 2006 à 13:28
- A quel moment as tu initialisé ta chaine de connection ? l'objet Conn est -il visible par la procédure ?
- Le code de de "Dim...." à "Conn.close()" est dans quel type de procédure ?
- As-tu essayé de connecter ta table à une datagrid pour vérifier ta chaine de connection ?