Ajouter des données ds la BD sql server via textbox [Résolu]

Signaler
-
 geoinformation -
salut tt le monde,
svp je veux savoir comment ajouter des données à ma BD sql server à partir de 12 textbox ,j'ai ma BD avec 4 table vide je veux la remplir en enrant les données dans ces textbox via un bouton (ajouter).
mercii d'avance

17 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Bonjour,
en utilisant une requête INSERT INTO ta_table
(car je pense ... veux penser ... que ton problème est l'insertion et que tu as déjà résolu celui de la connexion ... hein ...)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
enfin
"insert into Nv_inscription values('" + Textbox1.text + "')" 


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
il faut pas croire, il faut essayer et si ça marche pas, il faut chercher à savoir ce qui va pas...
d'où ma question: "as tu essayé avec le "+" et ça n'a pas marché??
et puis je vois nul part dans ton code où tu as ouvert ta connexion avant d'exécuter ta requête??
Et puis pendant que t'y es, essaie de poster ton code en entier, stp!! (en utilisant la coloration syntaxique 3e bouton en partant de la droite)

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0

salut ucfoutu
mercii d'avoir répondu à ma question ,j'ai essayée d'écrire la requète mé lorsque j'exécute le programme il une erreur (caractère non valide) dont j'ai pas pu la corrigée bn voila mon code:

Sub initailiser()
TextBox1.Clear()
End Sub

Sub activer()
TextBox1.Enabled = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btvider.Click
If Btvider.Text = "vider" Then

initailiser()
activer()
Btvider.Text = "ajouter"
ElseIf Btvider.Text = "ajouter" Then
dr.Close()
cn2.CommandText = "insert into Nv_inscription values('" ٬ Textbox1.text ٬ "')"
cn2.Connection = cn
cn2.ExecuteNonQuery()
MsgBox("ajout effectué")
End If
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
salut,

"caractère non valide" c'est pourtant clair,non?!!

et puis
" ٬ Textbox1.text ٬ "
c'est quoi ça?? ... un simple
Textbox1.text
devrait suffire


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0

salut NSUADI
ouiii caractère non valide est bien clair mé moi j'ai cru que au lieu de "+" j'ai mis "un virugle invesée"
merciii pour ta réponse

j'ai cru que c'est la syntax (avec la virgule inversée) bn, voila mon code entier :



Imports System.Data.SqlClient
Public Class application

Dim cn As New SqlConnection("Data Source=(local);Initial Catalog=Révision_des_listes_électorales;User Id=sa;Password=zanadyabouhami9a;")
Dim cn2 As New SqlCommand
Dim cn1 As New SqlCommand
Dim dr As SqlDataReader
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' pour les annexes_administratives
cn.Open()
Dim DataSet1 As New DataSet
Dim SqlDataAdapter1 As SqlDataAdapter
SqlDataAdapter1 = New SqlDataAdapter(New SqlCommand(" select nom_commune from annexes_administratives", cn))

SqlDataAdapter1.Fill(DataSet1, "annexes_administratives")

ComboBox.DataSource = DataSet1.Tables("annexes_administratives")
ComboBox.DisplayMember = "nom_commune"

'pour les nouvelles inscription

cn1.CommandText = "insert into Nv_inscription"
cn1.Connection = cn
dr = cn1.ExecuteReader
dr.Read()
TextBox1.Text = dr(0)


End Sub


Sub initailiser()
TextBox1.Clear()
End Sub

Sub activer()
TextBox1.Enabled = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btvider.Click
If Btvider.Text = "vider" Then

initailiser()
activer()
Btvider.Text = "ajouter"
ElseIf Btvider.Text = "ajouter" Then
If TextBox1.Text = Nothing Then
MsgBox(" veulliez entrer la valeur")
TextBox1.Focus()

Else
dr.Close()
cn2.CommandText = "insert into Nv_inscription values('" + TextBox1.Text + "') "
cn2.Connection = cn
cn2.ExecuteNonQuery()
MsgBox("ajout effectué")
End If

End If


End Sub
End Class





****** et si c possible de m'aider ,lorsque j'execute le code il apparait ensuit une erreur (" La référence d'objet n'est pas définie à une instance d'un objet.") pour le " dr.Close() " et j'arrive pas à la résoudre :p
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
Salut,

Coloration syntaxique, stp!! ça fait mal aux yeux comme ça... j'arrive pas à lire. Et une question c'est quoi le type de ton champ 'Nv_inscription'?
et puis un petit conseil, ce serait mieux d'ouvrir ta connexion quand tu en as besoin et la refermer tout juste après et c'est valable pour les autres objets aussi comme ton 'dr' que tu viens fermer dans le "click" du bouton

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
oh autant pour moi, je voulais dire le type du champ de ta table "Nv_inscription"


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0

salut NSUADI
les champ de ma table sont de type "int" j'ai modifier mon code il a bien compolier mé le prob maintenant c'est que les données que je viens d'ajouter ne se trouve plus dans ma base de données :p :p , bn voila mon code:
[code=vb][Imports System.Data.SqlClient
Public Class application

Dim cn As New SqlConnection("Data Source=(local);Initial Catalog=Révision_des_listes_électorales;User Id=sa;Password=zanadyabouhami9a;")
Dim cn2 As New SqlCommand
Dim cn1 As New SqlCommand
Dim dr As SqlDataReader
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' pour les annexes_administratives
cn.Open()
Dim DataSet1 As New DataSet
Dim SqlDataAdapter1 As SqlDataAdapter
SqlDataAdapter1 = New SqlDataAdapter(New SqlCommand(" select nom_commune from annexes_administratives", cn))

SqlDataAdapter1.Fill(DataSet1, "annexes_administratives")

ComboBox.DataSource = DataSet1.Tables("annexes_administratives")
ComboBox.DisplayMember = "nom_commune"

'pour les nouvelles inscription

cn1.CommandText = "select * from Nv_inscription"
cn1.Connection = cn
dr = cn1.ExecuteReader
If dr.HasRows Then
dr.Read()
TextBox1.Text = dr(0)
Txtbox2.Text = dr(1)
dr.Close()
Else
MsgBox("table vide")

End If

End Sub
Sub initailiser()
TextBox1.Clear()
Txtbox2.Clear()
End Sub

Sub activer()
TextBox1.Enabled = True
Txtbox2.Enabled = True
End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btvider.Click

If Btvider.Text = "vider" Then

initailiser()
activer()
Btvider.Text = "ajouter"
ElseIf Btvider.Text = "ajouter" Then
If TextBox1.Text = Nothing Then
TextBox1.Focus()
ElseIf Txtbox2.Text = Nothing Then
Txtbox2.Focus()
Else
dr.Close()
cn2.CommandText = "insert into Nv_inscription values('" + TextBox1.Text + "', '" + Txtbox2.Text + "') "
cn2.Connection = cn
cn2.ExecuteNonQuery()
MsgBox("ajout effectué")

End If


End If




End Sub]

**** dsl NSUADI pour la coloration j'ai ajouter le code entre les parenthèses

Imports System.Data.SqlClient
Public Class application

    Dim cn As New SqlConnection("Data Source=(local);Initial Catalog=Révision_des_listes_électorales;User Id=sa;Password=zanadyabouhami9a;")
    Dim cn2 As New SqlCommand
    Dim cn1 As New SqlCommand
    Dim dr As SqlDataReader
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' pour les annexes_administratives
        cn.Open()
        Dim DataSet1 As New DataSet
        Dim SqlDataAdapter1 As SqlDataAdapter
        SqlDataAdapter1 = New SqlDataAdapter(New SqlCommand(" select nom_commune from annexes_administratives", cn))

        SqlDataAdapter1.Fill(DataSet1, "annexes_administratives")

        ComboBox.DataSource = DataSet1.Tables("annexes_administratives")
        ComboBox.DisplayMember = "nom_commune"

        'pour les nouvelles inscription

        cn1.CommandText = "select * from Nv_inscription"
        cn1.Connection = cn
        dr = cn1.ExecuteReader
        If dr.HasRows Then
            dr.Read()
            TextBox1.Text = dr(0)
            Txtbox2.Text = dr(1)
            dr.Close()
        Else
            MsgBox("table vide")

        End If

    End Sub
Sub initailiser()
        TextBox1.Clear()
        Txtbox2.Clear()
    End Sub

    Sub activer()
        TextBox1.Enabled = True
        Txtbox2.Enabled = True
    End Sub


    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btvider.Click

        If Btvider.Text = "vider" Then

            initailiser()
            activer()
            Btvider.Text = "ajouter"
        ElseIf Btvider.Text = "ajouter" Then
            If TextBox1.Text = Nothing Then
                TextBox1.Focus()
            ElseIf Txtbox2.Text = Nothing Then
                Txtbox2.Focus()
            Else
                dr.Close()
                cn2.CommandText = "insert into Nv_inscription  values('" + TextBox1.Text + "', '" + Txtbox2.Text + "') "
                cn2.Connection = cn
                cn2.ExecuteNonQuery()
                MsgBox("ajout effectué")

            End If


        End If




    End Sub
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
Salut,

Si tes champs sont TOUS de type "int" alors ta requête doit être écrite comme ceci:

cn2.CommandText = "insert into Nv_inscription  values(" + TextBox1.Text + "," + Txtbox2.Text + ")"


tu auras remarqué que j'ai enlevé les " ' " dans la requête car ils sont utilisés uniquement pour les données de type "texte", "chaîne de caractère", ...

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0

salut,
merci bien pour votre aide :) et pour l'information
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
Salut,
Ton problème a t'il été résolue??

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0

salut ,
ouii mercii bien NSUADI , les données que j'entre par les textbox sont bien enregistrées ds la bases de données.mé maintenant le prob que j'ai c'est comment remplir ces textbox en fonction d'un combobox et d'un DateTimePicker ,donc je choisi un élément de la combobox et puis la date et je rempli mes champs !!
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
Salut,
désolé mais ton explication ne me semble pas très claire...si tu pouvais te reprendre, ce serait bien.

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0

salut NSUADI,
je veux savoir comment remplir des textbox en fonction d'une combobox (qui donne le nom de l'annexe administrative) et un DateTimePicker (selectionne la date de l'enregistrement de mes données), mon application à pour but de faire une révision des listes électorales en entrant le nombres des nouvelles inscription ,d'entrer le nombre des erreurs matérielles détectées, et de spécifier le type de radiation (décès, transfère..) donc je dois en premier temps choisir l'annexe administrative et puis il y a le DateTimePicker qui affiche la date, et puis je commence à remplir le textbox en fonction de ces deux controles.
j'éspère avoir clarifier un peu la question merci d'avance :)