[vb.net/sql] insertion de données
Fermé
Doom_aok
Messages postés
46
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
18 février 2008
-
25 oct. 2007 à 00:28
ramzi - 29 avril 2010 à 19:27
ramzi - 29 avril 2010 à 19:27
A voir également:
- [vb.net/sql] insertion de données
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
- Insertion sommaire word - Guide
- Reinstaller windows sans perte de données - Guide
- Insertion filigrane word - Guide
5 réponses
tu dois utiliser des quote ' pour entourer tes chaines de caractères en SQL (attention pas pour les entiers)
Dim cmd As New SqlCommand("insert client values('"Me.TextBox1.Text & "', '" & Me.TextBox2.Text & "', '" & Me.TextBox3.Text & "','" & Me.TextBox4.Text & "', '" & Me.TextBox5.Text) & "'", con)
n'oublie pas de vérifier de doubler dans le champ de tes textbox les quote aussi
exemple de fonction pour vérifier :
Public Function text_to_SQL(ByVal text As String) As String
Return Replace(text, "'", "''")
End Function
résultat :
Dim cmd As New SqlCommand("insert client values('" & text_to_SQL(Me.TextBox1.Text) & "', '" & text_to_SQL(Me.TextBox2.Text) & "', '" & text_to_SQL(Me.TextBox3.Text) & "','" & text_to_SQL(Me.TextBox4.Text) & "', '" & text_to_SQL(Me.TextBox5.Text)) & "'", con)
Sergio
Dim cmd As New SqlCommand("insert client values('"Me.TextBox1.Text & "', '" & Me.TextBox2.Text & "', '" & Me.TextBox3.Text & "','" & Me.TextBox4.Text & "', '" & Me.TextBox5.Text) & "'", con)
n'oublie pas de vérifier de doubler dans le champ de tes textbox les quote aussi
exemple de fonction pour vérifier :
Public Function text_to_SQL(ByVal text As String) As String
Return Replace(text, "'", "''")
End Function
résultat :
Dim cmd As New SqlCommand("insert client values('" & text_to_SQL(Me.TextBox1.Text) & "', '" & text_to_SQL(Me.TextBox2.Text) & "', '" & text_to_SQL(Me.TextBox3.Text) & "','" & text_to_SQL(Me.TextBox4.Text) & "', '" & text_to_SQL(Me.TextBox5.Text)) & "'", con)
Sergio
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
alyakin
Messages postés
2
Date d'inscription
samedi 5 septembre 2009
Statut
Membre
Dernière intervention
9 octobre 2009
9 oct. 2009 à 12:35
9 oct. 2009 à 12:35
stp j'ai un msg d'erreur et je parviens pas à me rectifier le msg est le suivant:
Le format de la chaine est incorrect
le voilà:
Dim cmd As New SqlCommand("insert into consultant values"(Convert.ToInt32(Me.id_consultant.Text) & ", '" & Me.nom.Text & "', '" & Me.prenom.Text & "', '" & Me.date_naiss.Text & "', '" & Me.lieu_naiss.Text & "', '" & Me.adresse.Text & "', " & Convert.ToInt32(Me.num_cni.Text) & ", '" & Me.statut.SelectedIndex & "', '" & Me.num_contrat.Text & "', '" & Me.num_ipres.Text & "', '" & Me.dure_contrat.Text & "', '" & Me.date_entre.Text & "', '" & Me.date_sortie.Text & "', " & Convert.ToInt32(Me.honoraire_brut.Text) & ", " & Me.prelevement_fiscal.SelectedIndex), con)
Le format de la chaine est incorrect
le voilà:
Dim cmd As New SqlCommand("insert into consultant values"(Convert.ToInt32(Me.id_consultant.Text) & ", '" & Me.nom.Text & "', '" & Me.prenom.Text & "', '" & Me.date_naiss.Text & "', '" & Me.lieu_naiss.Text & "', '" & Me.adresse.Text & "', " & Convert.ToInt32(Me.num_cni.Text) & ", '" & Me.statut.SelectedIndex & "', '" & Me.num_contrat.Text & "', '" & Me.num_ipres.Text & "', '" & Me.dure_contrat.Text & "', '" & Me.date_entre.Text & "', '" & Me.date_sortie.Text & "', " & Convert.ToInt32(Me.honoraire_brut.Text) & ", " & Me.prelevement_fiscal.SelectedIndex), con)
12 mars 2009 à 20:00
'voici mon bouton qui permet d'ajouter un personnel a la table personnel de la BD sql server 2005
Private Sub Enregistrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Enregistrer.Click
Nom = T1.Text
Prenom = T2.Text
Date_naiss = T3.Text
Sexe = T4.Text
CIN = T5.Text
Sit_fami = T6.Text
Date_effet = T7.Text
Nom_jeune_fille = T8.Text
Nationnalite = T9.Text
Num_pass = T10.Text
Try
cnx.ConnectionString = ConfigurationManager.ConnectionStrings("DBConnectionString").ToString
cnx.Open()
Dim cmd As New SqlCommand
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = cnx
Dim cmd_compt As New SqlCommand
cmd_compt.CommandType = System.Data.CommandType.Text
cmd_compt.Connection = cnx
cmd_compt.CommandText = "select max(Id_pers) AS max from Personnel"
Dim read_compt As SqlDataReader
read_compt = cmd_compt.ExecuteReader()
read_compt.Read()
Dim max As Integer = read_compt.Item(0)
max = max + 1
read_compt.Close()
MsgBox(max)
'**************************************************
Dim strRequete As String = "INSERT INTO Personnel(Id_pers, CIN, Sexe, Sit_fami, Date_effet, Nom_fami, Prenom, Nom_jeune_fille , Date_naiss, Nationnalite, Num_pass) VALUES (@Id_pers, @CIN, @Sexe, @Sit_fami, @Date_effet, @Nom_fami, @Prenom, @Nom_jeune_fille , @Date_naiss, @Nationnalite, @Num_pass)"
Dim oSqlDataAdapter As New SqlDataAdapter(strRequete, cnx)
Dim oDataSet As New DataSet("Personnel")
oSqlDataAdapter.Fill(oDataSet, "Personnel")
Dim i As Integer
For i = 0 To (oDataSet.Tables("Personnel").Rows.Count) - 1
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oDataSet.Tables("Personnel").Rows(i)(0).ToString(), oDataSet.Tables("Personnel").Rows(i)(1).ToString())
Next i
Console.WriteLine(ControlChars.Lf)
' Remplissage de la commande InsetCommand
oSqlDataAdapter.InsertCommand = New SqlCommand("INSERT INTO Personnel(Id_pers, CIN, Sexe, Sit_fami, Date_effet, Nom_fami, Prenom, Nom_jeune_fille , Date_naiss, Nationnalite, Num_pass) VALUES (@Id_pers, @CIN, @Sexe, @Sit_fami, @Date_effet, @Nom_fami, @Prenom, @Nom_jeune_fille , @Date_naiss, @Nationnalite, @Num_pass)", cnx)
oSqlDataAdapter.InsertCommand.Parameters.Add("@Id_pers", SqlDbType.Int, 4, "Id_pers")
oSqlDataAdapter.InsertCommand.Parameters.Add("@CIN", SqlDbType.Int, 4, "CIN")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Sexe", SqlDbType.VarChar, 5, "Sexe")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Sit_fami", SqlDbType.VarChar, 15, "Sit_fami")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Date_effet", SqlDbType.DateTime, 4, "Date_effet")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Nom_fami", SqlDbType.VarChar, 15, "Nom_fami")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Prenom", SqlDbType.VarChar, 15, "Prenom")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Nom_jeune_fille", SqlDbType.VarChar, 15, "Nom_jeune_fille")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Date_naiss", SqlDbType.DateTime, "Date_naiss")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Nationnalite", SqlDbType.VarChar, 20, "Nationnalite")
oSqlDataAdapter.InsertCommand.Parameters.Add("@Num_pass", SqlDbType.Int, 4, "Num_pass")
Dim oDataRow As DataRow
' Dim byteArray As Byte() = {&H0, &H0}
oDataRow = oDataSet.Tables("Personnel").NewRow()
oDataRow("Id_pers") = max
oDataRow("CIN") = CType(CIN, Integer)
oDataRow("Sexe") = T4.Text
oDataRow("Sit_fami") = T6.Text
oDataRow("Date_effet") = CType(Date_effet, DateTime)
oDataRow("Nom_fami") = T1.Text
oDataRow("Prenom") = T2.Text
oDataRow("Nom_jeune_fille") = T8.Text
oDataRow("Date_naiss") = CType(Date_naiss, DateTime)
oDataRow("Nationnalite") = T9.Text
oDataRow("Num_pass") = CType(Num_pass, Integer)
oDataSet.Tables("Personnel").Rows.Add(oDataRow)
' Mise à jour de la source de données à partir du DataSet
oSqlDataAdapter.Update(oDataSet, "Personnel")
' Rechargement des données de la source mise à jour
oDataSet.Clear()
oSqlDataAdapter.Fill(oDataSet, "Personnel")
' Affichage du contenu de oDataSet après insertion d'une ligne de données
Console.WriteLine(" *** Liste des catégories après la mise à jour *** ")
Dim ii As Integer
For ii = 0 To (oDataSet.Tables("Personnel").Rows.Count) - 1
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oDataSet.Tables("Personnel").Rows(ii)(0).ToString(), oDataSet.Tables("Personnel").Rows(ii)(1).ToString())
Next ii
cnx.Close()
'**************************************************
MsgBox("execution en cour")
' cmd.ExecuteNonQuery()
cnx.Dispose()
MsgBox("ajout réussi")
cnx.Close()
Catch ex As Exception
Console.WriteLine(ex.ToString())
cnx.Close()
End Try
End Sub
'le résultat de l'éxécution me donne:
Une exception de première chance de type 'System.FormatException' s'est produite dans mscorlib.dll
Une exception de première chance de type 'System.FormatException' s'est produite dans mscorlib.dll
Une exception de première chance de type 'System.FormatException' s'est produite dans mscorlib.dll
Une exception de première chance de type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll
System.Data.SqlClient.SqlException: La variable scalaire "@Id_pers" doit être déclarée.
à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
à System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
à System.Data.SqlClient.SqlDataReader.get_MetaData()
à System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
à System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
à System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
à System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
à System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
à System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
à System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
à PFE_GA.Form1.Enregistrer_Click(Object sender, EventArgs e) dans C:\Documents and Settings\ben_yahia\Mes documents\Visual Studio 2008\Projects\PFE_GA\PFE_GA\GUI\Form1.vb:ligne 96
'vraiment je n'ai pas pu résoudre ce pb