begin process at 2012 02 14 18:20:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

ADO.NET

 > 

[.NET] Mise à jour Bdd


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[.NET] Mise à jour Bdd

samedi 12 août 2006 à 00:41:25 | [.NET] Mise à jour Bdd

Sniper_Vgaerr

Bonjour à tous,

J'ai un petit souci dans mon programme VB.NET. J'ai crée un programme de gestion de fiches clients ainsi que de classeurs, qui correspondent à des départements. J'ai ce code :

    Private cnx As OleDb.OleDbConnection
    Private cmd As OleDb.OleDbCommand
    Private da As OleDb.OleDbDataAdapter
    Private ds As DataSet
    Private dt As DataTable
    Private dr As DataRow
    Private rownum As Integer
    Private cmdb As OleDb.OleDbCommandBuilder
    Private Interlocuteur As Boolean

    Private Sub FrmClients_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        On Error GoTo Err
        ListView1.Clear()
        ListView1.View = View.Details
        ListView1.Columns.Add("Nom", 90, HorizontalAlignment.Left)
        ListView1.Columns.Add("Prénom", 80, HorizontalAlignment.Left)
        ListView1.Columns.Add("Fonction", 70, HorizontalAlignment.Left)
        ListView1.Columns.Add("Email", 130, HorizontalAlignment.Left)
        ListView1.Columns.Add("Téléphone", 85, HorizontalAlignment.Left)
        Exit Sub
Err:
        MsgBox("Une erreur est survenue dans l'initialisation de la listview.", MsgBoxStyle.Critical, "Erreur initialisation listview.")
    End Sub

    Private Sub FrmClients_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

        rownum = FrmGestion.ListView1.SelectedItems(0).Index

        cnx = New OleDb.OleDbConnection("provider = microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\Clients.mdb;")
        Try
            cnx.Open()
            da = New OleDb.OleDbDataAdapter("SELECT Societe, Adresse1, Ville, CP, Dept, Region, Tel, Port, Fax, Email, Internet, NClient, Interlocuteur, Etat, SocieteAL, Adresse1AL, Adresse2AL, VilleAL, CodePostalAL, DeptAL, SocieteAF, Adresse1AF, Adresse2AF, VilleAF, CodePostalAF, DeptAF, NFR, NSIRET, Reglement, A4, DateA4, Carnet, DateCarnet, Continu, DateContinu, Contisnap, DateContisnap, Etiquette, DateEtiquette, Liasse, DateLiasse, Mailer, DateMailer, Plaquette, DatePlaquette, Tete, DateTete, Contrainte, CE FROM [" & TableEnCours & "]", cnx)
            ds = New DataSet
            da.Fill(ds)
            dt = ds.Tables(0)
            If dt.Rows.Count = 0 Then MsgBox("La table " & TableEnCours & " est vide.", MsgBoxStyle.Information, "Table vide.")
            'rownum = 0
            Nombre.Text = rownum
        Catch ex As Exception
            MsgBox("Une erreur est survenue dans le chargement de la base de donnée Clients.mdb.", MsgBoxStyle.Critical, "Erreur base de donnée.")
            Debug.Write(ex.Message)
            Debug.Write(ex.StackTrace)
        Finally
            cnx.Close()
            cnx.Dispose()
            cnx = Nothing
            Call Misejour()
        End Try

        Me.Width = FrmMain.Width - FrmMain.ToolStrip1.Width - 12
        Me.Height = FrmMain.Height - 32
    End Sub

 Private Sub Premier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Premier.Click
        On Error GoTo Err
        rownum = 0
        Call Misejour()
        Nombre.Text = rownum
Err:
    End Sub

    Private Sub Arriere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Arriere.Click
        On Error GoTo Err
        If rownum = 0 Then Exit Sub
        rownum -= 1
        Call Misejour()
        Nombre.Text = rownum
Err:
    End Sub

    Private Sub Suivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Suivant.Click
        On Error GoTo Err
        If rownum = dt.Rows.Count - 1 Then Exit Sub
        rownum += 1
        Call Misejour()
        Nombre.Text = rownum
Err:
    End Sub

    Private Sub Dernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dernier.Click
        On Error GoTo Err
        rownum = dt.Rows.Count - 1
        Call Misejour()
        Nombre.Text = rownum
Err:
    End Sub

    Private Function Misejour()
        On Error GoTo Err
        'Etat, SocieteAL, Adresse1AL, Adresse2AL, VilleAL, CodePostalAL, DeptAL, SocieteAF, Adresse1AF, Adresse2AF, VilleAF, CodePostalAF, DeptAF, NFR, NSIRET, Reglement, A4, DateA4, Carnet, DateCarnet, Continu, DateContinu, Contisnap, DateContisnap, Etiquette, DateEtiquette, Liasse, DateLiasse, Mailer, DateMailer, Plaquette, DatePlaquette, Tete, DateTete, Contrainte, CE
        Me.NomCL.Text = dt.Rows(rownum).Item("Societe")
        Me.AddCL.Text = dt.Rows(rownum).Item("Adresse1")
        Me.VilleCL.Text = dt.Rows(rownum).Item("Ville")
        Me.CPCL.Text = dt.Rows(rownum).Item("CP")
        Me.DeptCL.Text = dt.Rows(rownum).Item("Dept")
        Me.RegCL.Text = dt.Rows(rownum).Item("Region")
        Me.Tel1CL.Text = dt.Rows(rownum).Item("Tel")
        Me.Tel2CL.Text = dt.Rows(rownum).Item("Port")
        Me.FaxCL.Text = dt.Rows(rownum).Item("Fax")
        Me.EmailCL.Text = dt.Rows(rownum).Item("Email")
        'Me.textbox1.Text = dt.Rows(rownum).Item("NClient")
        Me.TextBox1.Text = dt.Rows(rownum).Item("Interlocuteur")
Err:
        Return 0
    End Function

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        On Error GoTo Err
        Call Interlo()
        Exit Sub
Err:
        MsgBox("Une erreur est survenue au chargement de la listview.", MsgBoxStyle.Critical, "Erreur chargement listview.")
    End Sub

    Private Sub ModifClient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ModifClient.Click

        dr = ds.Tables(0).Rows(rownum)

        dr("Region") = Me.RegCL.Text
        dr("Tel") = Me.Tel1CL.Text
        dr("Port") = Me.Tel2CL.Text

        cmdb = New OleDb.OleDbCommandBuilder(da)

        da.Update(ds) 'Ici j'ai cette erreur : The ConnectionString property has not been initialized.

        ds.Clear()
        da.Fill(ds, 0)
        dt = ds.Tables(0)


        Call Misejour()

        rownum = 0

        Me.RegCL.Text = dt.Rows(rownum).Item("Region")
        Me.Tel1CL.Text = dt.Rows(rownum).Item("Tel")
        Me.Tel2CL.Text = dt.Rows(rownum).Item("Port")

        MessageBox.Show("Les données sont modifiées !", "Modification...", MessageBoxButtons.OK, MessageBoxIcon.Information)

    End Sub

J'ai essayé pleins de solutions trouvée sur VbFrance, mais le code est le même, je ne comprends pas ce qui ne marche pas.  
TableEnCours correspond à un classeur, donc à une table correspondant à un département.
J'ai essayé de mettre da.Update(ds, "Doubs") mais ca ne marche pas, il me met qu'il ne peut pas lire le tablemapping 'Doubs'. J'ai essayé aussi en ne fermant pas la connection (cnx), il me met qu'il ne peut pas lire du SQL dynamique ou quelque chose dans le genre.

Voila si vous pouviez m'aider ca serait super sympa.
Merci à vous

@Plouch

samedi 12 août 2006 à 14:31:50 | Re : [.NET] Mise à jour Bdd

nhervagault

Administrateur CodeS-SourceS
Salut

Pourquoi tu remplis ta chaine de connection dans la methode paint
C'est dans le load ou le constructeur que cela serai mieux car le paint est appellé je crois de maniere aléatoire et  souvent. Quand une zone de ton appli est a refaire, donc il faut eviter de mettre du code dedans.
Surtout un code qui interroge la base de donnees.

2--> Est-ce que ta table a une cle primaire
Et regarde si le commande builder te genere un bon updatecommand, inssertcommand et delete sur ton da
3--> Pour la chaine de connexion
mais la dans le fichier de configuration c'est mieux

4--> Pour la non initialisation, je pense que c'est parceque elle est mal placée.

Regarde les premier point, ca doit peut etre resoudre ton probleme




samedi 12 août 2006 à 17:35:45 | Re : [.NET] Mise à jour Bdd

chris81

en .net le goto est à proscrire, regarde le try catch finally. De plus ta connexion doit être ouverte lorsque tu fais des changements ou dans le load comme le dit nhervagault

a+

[ Lien ]
[ Lien ]
http://
lundi 14 août 2006 à 16:17:26 | Re : [.NET] Mise à jour Bdd

Sniper_Vgaerr

Bonjour,

Je n'ai pas de clé primaire, et comment je fais pour "Et regarde si le commande builder te genere un bon updatecommand, inssertcommand et delete sur ton da", car je débute un peu en VB.NET, et je ne connais pas trop la syntaxe,plus celle de Vb.

Merci j'essaye tout ca et je vous tiens au courant.

mardi 15 août 2006 à 00:53:34 | Re : [.NET] Mise à jour Bdd

nhervagault

Administrateur CodeS-SourceS
Salut
Pour regarder la synatxe
Tu mets un point d'arret sur ton da
et tu regardes la valeur deans le debugeur de tes variables.

Pour la clé primaire, il faut la mettre sur ta base de données.
Avec l'interface graphique ou par ajout de contraintes.
Vas dans le mode conception table et selectionne la colonne et clique qur la cle dans le menu je crois que c'est comme ca dans access.

Voila


Cette discussion est classée dans : text, private, rows, dt, rownum


Répondre à ce message

Sujets en rapport avec ce message

ComboBox et SQL [ par loneliness06 ] Bonjour a tous,nom de bd : "notes.mdb"nom de la table : "notes"nom du champs que je veux recupérer : "Scale"J'ai un gros probleme je ne sais pas comme Base de données à plusieurs tables [ par java_Ado ] Bonsoir !!!!g une application  à realisé elle doit etre relier a une base de données constitué de  4 tables alors chaque clé primaire d une table est probleme de mise a jour de base de donnée [ par kerry974 ] Bonjour, je suis en train de programmer une application manipulant une base de donnée, mon programme arrive à la lire, le problème arrive quand je Prolème de Conversion de type DBNuull en String [ par coulibalysy ] Je suis débutant en VB.net et je developpe sur VB.Net Express 2008Lorsque je lance l'exe mon programme me signale l'erreur suivante:"La conversion du Exception Oledexception n'a pas été gérée [ par coulibalysy ] Erreur de syntaxe (opérateur absent) dans l'expression « ((ID = ?) AND ((? = 1 AND Exercice IS NULL) OR (Exercice = ?)) AND ((? = 1 AND NumInscription La référence d'objet n'est pas définie à une instance d'un objet. [ par soniaenit ] ST j'ai cette erreur qui s'affiche à chaque clic sur le bouton modifier "La référence d'objet n'est pas définie à une instance d'un objet." voila base de données access [ par germany1970 ] Bonsoir et bonne et heureuse année 2011, mon problème le suivant : j'ai écrit le code pour se connecter à une base de donnée access, j'ajoute un enreg connecter base de donnée access [ par germany1970 ] Bonsoir et bonne et heureuse année 2011, mon problème le suivant : j'ai écrit le code pour se connecter à une base de donnée access, j'ajoute un enr Message d'erreur "EXPRESSION TROP COMPLEXE". [ par carmilloguevara ] bonjour je souhaite supprimer un enregistrement de ma table, mais quand je je click sur mon bouton supprimer un message d'erreur apparait au niveau de Ma requêtes SQL ne retourne rien ... [ par emarck ] Bonjour, Je fais actuellement un programme tout simple ou je désire faire une requêtes slq avec plusieurs WHEN imbriqué. Après plusieurs te


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,184 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales