Bonjour,

je cherche à faire un ajout de ligne dans ma base de données.
J'ai donc pour cela une commande Insert :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Try
            Dim majIdUtilisateur As Integer
 
            Dim conn As New OracleConnection()
            conn.ConnectionString = oradb
            conn.Open()
            Dim requeteInsertClt As String
            requeteInsertClt = "INSERT INTO Utilisateur VALUES ('" & majIdUtilisateur & "', '" & txtNomEleve.Text & "','" & txtPrenomEleve.Text & "', '" & lbNomClasse.SelectedIndex.ToString & "', '" & lbNomProf.SelectedIndex.ToString & "', '" & txtDaigl.Text & "','" & txtAlsi.Text & "', '" & txtReseau.Text & "', '" & txtGeosi.Text & "')"
            Dim command As New OracleClient.OracleCommand(requeteInsertClt)
            command.Connection = conn
 
            command.ExecuteNonQuery()
            MessageBox.Show("L'enregistrement de l'élève " & txtNomEleve.Text & " " & txtPrenomEleve.Text & " en classe " & lbNomClasse.SelectedValue & Environment.NewLine & " avec comme prof principal Mr/Mme " & lbNomProf.SelectedValue & " a été éffectué")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
La requête est censée enregistrer :
1 id (le champ auto-incrémenté), le nom, le prénom, le nom de la classe (récupéré de lbNomClasse), le nom du prof (récupéré de lbNomProf) ainsi que les 4 notes.

J'ai 2 problèmes :
  • le numéro auto-incrémenté : je ne sais pas comment le gérer dans la requête sous-vb. J'ai crée la séquence et le trigger pour l'auto incrémentation pour les enregistrements directement depuis la base mais je ne sais pas comment l'utiliser depuis vb.net .

  • le nom de la classe et le nom du prof : avec ma méthode, il récupère le numéro de la ligne de la listbox et non pas le nom, ce qui provoque une erreur étant donné que dans ma table, les classes ont comme clé primaire leur nom.


Si vous avez des idées, conseils, ...

Merci !