1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Public Sub AddInDb(ByVal Datas As String(), ByVal Sql As String, ByVal Table As String, ByVal Base As String)
Dim cnx As New SqlConnection() 'On crée la variable de connexion
Dim dts As New DataSet() 'On crée un cache mémoire des données
Dim dtt As New DataTable() 'On crée la représentation de la table dans le cache
Dim dtr As DataRow = Nothing 'On crée la représentation de la ligne dans la table
'cnx.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " & Application.StartupPath & "\" & Base 'définition du chemin de connexion
cnx.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;" & "database=" & Base & ";server=.\SQLEXPRESS"
cnx.Open() 'on ouvre la connexion
Dim dta As New SqlDataAdapter(Sql, cnx) 'on adapte la connexion par rapport à ça requete
dta.Fill(dts, Table) 'On aligne les données du dataset par rapport à la table (si la table n'existe pas l'erreur est ici)
dtt = dts.Tables(Table) 'On envoi dans le dtt la table virtuelle
dtr = dtt.NewRow() 'On définit la ligne comme étant une nouvelle ligne de la table virtuelle
dtr(0) = dtt.Rows.Count + 1 'La premiere donnée sera d'incrémenter l'ID de la ligne
For i As Integer = 1 To Datas.Length 'on rempli toutes les autres colonnes avec les données
dtr(i) = Datas(i - 1)
Next
dtt.Rows.Add(dtr) 'On ajoute la ligne au datatable
Dim cmd As New SqlCommandBuilder(dta) 'Création de la commande de modification de la base de donnée
dta.UpdateCommand = cmd.GetUpdateCommand 'On définit la requete de modification
dta.Update(dts, Table) ' on modifie en fonction des nouvelles données
cnx.Close() 'On ferme la connexion
End Sub |
Partager