Inserer des données dans une table (Juillet 2004)
----------------------------------------------------------------
P'tit script ecrit en vb.net qui montre
comment on peut insérer des données ds une table ms sql serveur
à l'aide d'une procedure stockee.
Si quelqu'un desire recevoir le code en c# qu'il m'envoye un p'tit mail
je me ferais un plaisir de lui traduire...
J'ai mis pas mal de commentaire
Qu 'est ce qu'une procedure stockee et ces avantages :
-----------------------------------------------------------------------
Une procédure stockée est comme son nom l?indique, une procédure manipulant les données écrite dans un langage procédural spécifique au SGBD et qui est stockée dans la base de données.
Les procédures stockées permettent une plus grande sécurité.
En effet, grâce à elles, vous pouvez retirer tous les droits des utilisateurs
sur une table et les obliger à employer vos procédures stockées (qui elles feront
ce que vous voulez exactement comme vous le voulez).
Tandis qu'un utilisateur qui
a des droits d'écriture sur une table peut faire ce qu'il veut.
Votre code est centralisé et la maintenance facilitée.
En effet, si vous décidez
de changer la structure de votre base de données, il vous suffit de mettre à jour
votre procédure stockée sans avoir à reprogrammer toutes les applications clientes.
Les procédures stockées sont exécutées sur le serveur. Comme en général le serveur
est une machine bien plus puissante que les pc clients, les temps de réponses sont bien plus performants.
Les procédures stockées sont précompilées. Cela signifie que les requêtes ne doivent
plus être ni parsées ni interprétées. Ce qui augmente fortement les performances.
Elles sont rapide à utiliser, utilise la puissance du serveur,
elles soulagent donc un peu le trafic réseaux.
Pour en savoir plus encore ....suivez ce lien
http://www.delphifr.com/code.aspx?ID=22175
Pour faire tourner le script :
-------------------------------------
Il vous suffit d'ouvrir le fichier en .sql et de le coller
dans l'analyseur de requetes et de l'executer...
Cela créera la structure de la table ainsi que la procedure stockee nommé => ajout
ensuite ouvrez le fichier global.asax
et changez les propriete de la connection, mettez le nom de
votre base de donnees
ICI =>
myConnection.Connectionstring = "server=(local);Initial Catalog=NomDeVotreBase;trusted_connection=yes"
Voila enregistrez le tout...
ca roule
Source / Exemple :
--PROCEDURE STOCKEE AJOUT
create proc ajout
--DELCARATIONS VARIABLES
@insertnom varchar(20),
@insertprenom varchar(20),
@insertadresse varchar(50),
@insertville varchar(30),
@inserttelephone varchar(20)
--REQUETE INSERTION DS LA TABLE UTILISATEURS
as
insert into dbo.utilisateurs (nom, prenom, adresse, ville, telephone)
--VALEURS
values (@insertnom, @insertprenom, @insertadresse, @insertville, @inserttelephone)
'----- FORMULAIRE AJOUT DE CONTACT -----------
'ENREGISTREMENT DES DONNEES DS LA BASE
Sub BtnValide_Click(sender As Object, e As EventArgs)
' ---- VARIABLE CONTENANT LA PAGE DE REDIRECTION ----
dim RedirectionURL as string= "AfficheFile.aspx"
'---- SI LE TEXTBOXNOM EST VIDE ON AFFICHE UN P TIT MESSAGE ERREUR ---
IF (txtboxnom.text = "") then
labelerreur.text = "Veuillez completer le formulaire svp...!"
' ----SINON ON ENvOIT TOUTES LES DONNEES A LA PROCEDURE STOCKEE ---
Else
' --- RECUPERATION CONNECTION DS LE FICHIER GLOBAL.ASAX ---
myConnection = Ctype(Session("myConnection"),sqlConnection)
'--- DECLARATION -------
Dim Mycommand as new sqlcommand
MyCommand = New SqlCommand("ajout",MyConnection)
MyCommand.CommandType = commandType.StoredProcedure
Dim CommandAdapter As SqlDataAdapter
'---- PARAMETRE PASSE A LA PROCEDURE STOCKEE => AJOUT -----
'---- ON PLACE DONC LES VALEURS CONTENUES DS LES TEXTBOX ----
'--- DS LES VARIABLES POUR LA PROCEDURE STOCKEE ----
Mycommand.parameters.add("@insertnom", SqlDbType.nvarchar).value = Txtboxnom.text
Mycommand.parameters.add("@insertprenom", SqlDbType.nvarchar).value = TxtBoxprenom.text
Mycommand.parameters.add("@insertadresse", SqlDbType.nvarchar).value = TxtBoxad.text
Mycommand.parameters.add("@insertville", SqlDbType.nvarchar).value = TxtBoxvi.text
Mycommand.parameters.add("@inserttelephone", SqlDbType.nvarchar).value =TxtBoxtel.text
'----GESTION ERREURS -----------
Try
' ---ici on met le code à exécuter risquant d?engendrer l?erreur
'----- EXECUTE LA COMMANDE -----
'Exécute une instruction Transact-SQL sur la connexion et peut retourner
' le nombre de lignes affectées
Mycommand.ExecuteNonQuery()
'---- REDIRECTION -------
Response.Redirect(RedirectionURL)
Catch
' ---ici on place le code à exécuter si l?erreur se produit
labelerreur.text = "Une erreur s'est produite"
End Try
' ----- FERMETURE CONNECTION ------
Myconnection.close()
'FIN
end if
End Sub
Conclusion :
Enjoy
Christophe
http://membres.lycos.fr/annmysql/
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.