ManuAntibes
Messages postés491Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention18 novembre 2021
-
26 mars 2006 à 21:46
poupouille55
Messages postés35Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention23 avril 2008
-
24 mai 2006 à 16:36
Bonjour
Je veux ajouter des enregistrements sur une table "Client", je travail avec Web developper express 2005 en ASP.net.
J'ai fais une procédure stockée, pour ajouter mes enregistrements.
sur ma page web lorsque j'ajoute un client, j'ai le message d'erreur suivant:
Détails de l'exception: System.Data.SqlClient.SqlException: Trop d'arguments sont spécifiés pour la procédure ou la fonction AjouterClient.
Je ne comprends pas se qu'il y a qui ne va pas dans ma procedure stocké.
Si vous avez un conseil ou une solution pour regler mon problème, je vous remercie.
cs_Yopyop
Messages postés586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 27 mars 2006 à 06:40
salut,
pour tester ta procédure stockée va directement dans la base (utilise query analyser par example) .
si elle fonctionne, c'est un problème dans ta page...
ManuAntibes
Messages postés491Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention18 novembre 20215 27 mars 2006 à 21:41
Suite de mon probleme
Je n'arrive pas à lui faire ajouter un enregistrement dans ma table, je n'arrive pas ajouter l' IdClient (key primaire) en automatique.
je se message d'erreur : Impossible d'insérer la valeur NULL dans la colonne 'Id_Client', table 'C:\AMELIE INTRANET\APP_DATA\AMELIE_DATA.MDF.dbo.Client'. Cette colonne n'accepte pas les valeurs NULL. Échec de INSERT.
L'instruction a été arrêtée.
voici mon code:
"InsertCommand="AjouterClient"
InsertCommandType="StoredProcedure"
SelectCommand="SELECT * FROM Client">
IdTitre_Client:
'>
Nom_Client:
'>
Prenom_Client:
'>
Adresse1_Client:
'>
Adresse2_Client:
'>
Ville_Client:
'>
CodePostal_Client:
'>
Telephone_Client:
'>
Portable_Client:
'>
Email_Client:
'>
DateCreation_Client:
'>
IdMagasin_Client:
'>
si vous avez une solution Merci beaucoup !!!
MANUANTIBES [:p]
Vous n’avez pas trouvé la réponse que vous recherchez ?
poupouille55
Messages postés35Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention23 avril 2008 23 mai 2006 à 11:16
Salut manuantibes !
j'ai le même problème que toi.
lorsque j'insère mon enregistrement, je ne lui précise pas l'id. C'est à dire que ni le champs, ni le paramètre @id n'est mentionné dans mon insert
Avant d'insérer, je recherche dans ma table la première ligne vide : "select * from [table] where id=0"
et j'insère dans cette ligne.
cette solution m'a été donnée et elle fonctionne, mais j'ai du oublié de faire qq chose dans mon code.
j'ai un reader qui exécute ma requete select, je le ferme et le rouvre pour effectuer mon insertion, et c'est a que ça coince, je pense qu'il y un pb avec mon reader. si qq a une solution ! MERCI
ManuAntibes
Messages postés491Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention18 novembre 20215 23 mai 2006 à 13:54
en faite le problème que j'avais venais de ma table SQL server 2005 ou 2000
en faite mon ID n'etait pas autoincrement,
J'ai vu en analysant d'autre Table qui marche que l'ID etait en clé primaire et dans les prorietes de la colonne ID je renseigne aussi le champs "Colonne d'identité".
je crois que c'etait ça mon problème.
et ma procedure stocké et ma page etait bonne.
si ça d'aide temp mieux sinon reposte.
Aujourd'hui je fais mais ajout de table par les pages "pagexx.aspx.vb" avec les commandes INTO.
A+
poupouille55
Messages postés35Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention23 avril 2008 23 mai 2006 à 14:53
Mon id est désigné comme clé primaire dans ma table, c'est tout.
D'ailleurs je ne comprends pas tout dans ton code : où est la requête insert into qui te permet de rajouter un enregistrement dans ta table ??
ManuAntibes
Messages postés491Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention18 novembre 20215 23 mai 2006 à 19:57
Salut
ton ID doit etre comme
pour l'INTO que tu ne trouves pas dans mon code au dessus, c'est normal.
Au dessus je ne sais pas trop comme faire pour ajouter des enregistrements dans mes tables.
Donc j'ai suivi les tutaux de microsoft à ce lien
http://www.microsoft.com/france/msdn/aspnet/travaux.mspx Microsoft propose de créé un site sans ecrire de code ou tres peu.
Microsoft travail pour créé le site avec les pages aspx en mode design et en mode source.
Mais ne travail pas en mode VB ou C#.
Dans mon code au dessus j'ai voulu developper mon site comme à fait Microsoft, mais je me suis tres vite bloqué, pour par exemple mettre une date automaiquement dans un champ texte ou recupere le nom du magasin d'une cookie.
Donc j'ai du passé par du code pour faire c'est action.
pour ajouter un enregistrement par le code , la tu utilises INTO
Sur l'image; le cadre du milieu en jaune claire c'est en mode design comme le tutau de Microsoft, et le cadre de droite la c'est le code, et tu y trouves INSERT INTO
au dessu dans le code on trouve
Dim sDate
As
Date =
Date.Now
Dim sMagasin
As Int32 = Int32.Parse(
CType(e.Item.FindControl(
"TxbMagasin"), TextBox).Text)
ou j'ai pu ajouter le date en automatique et le nom du magasin dans une textBox a l'ouverture de ma page
maintenant a toi de voir si tu veux utiliser l'ajout dans une table en mode design regarde les tutaux de Microsoft sinon par dans le code et suis le tutorial de C2i.fr.
Je te conseil de commencer a apprendre a utiliser le code on est plus libre.
poupouille55
Messages postés35Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention23 avril 2008 24 mai 2006 à 16:36
salut !
merci pour toutes tes infos. J'ai choisi de coder en behind. En réalité la seule précipsion qu'il me manquait, c'est la colonne di'dentité dans les propriété de la clé primaire.
J'avais au début un datareader pour lire dans la table l'enregistrement vide puis je lui réaffectais a l'aide de commandtext une nouvelle requête, mais rien a y faire.
Depuis cette petite astuce sur la clé primaire, je n'ai plus qu'une requête (insert) et tout fonctionne.
Ce code fonctionne avec la propriété que ManuAntibes à expliquer plus haut
'connexion a la base de données
connect.open()
Dim Requete AsNew SqlCommand
Dim myReader2 As System.Data.SqlClient.SqlDataReader
Requete = New SqlCommand("INSERT INTO [table] (champ1, champ2 ...) VALUES(@value1, @value2 ...)", Connect) 'ne pas spécifié le champ clé primaire auto increment