Meilleur auteur de réponses
enregistrer case a cocher dans une base de donné

Question
-
bonjour,
y a t'il une personne sachant comment enregistrer plusieur valeurs d'une checkboxlist dans une base de données, je realise une application sous visual studio en asp.net vb. dans un formulaire de saisie j'ai une check boxlist ou l'utilisateur peut cocher plusieur case, j'aimeraii savoir comment enregistrer ces valeuir dans un base de données. merci,
cordialement
Réponses
-
Bonjour,
Voici un exemple de code qui ajoute les informations (valeur et coché/décoché) d’une CheckList dans une table. Vous pouvez particulariser votre procédure selon les informations que vous voulez stocker :
protected void Button1_Click(object sender, EventArgs e) { string constr = @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True"; SqlConnection con = new SqlConnection(constr); con.Open(); SqlParameter par1 = new SqlParameter("myvalue",System.Data.SqlDbType.NVarChar,10); SqlParameter par2 = new SqlParameter("mycheck", System.Data.SqlDbType.NVarChar,10); SqlCommand com = new SqlCommand("insert into CheckTable(value, [check]) values " + "(@myvalue, @mycheck);", con); com.Parameters.Add(par1); com.Parameters.Add(par2); int i; for(i=0; i<this.CheckBoxList1.Items.Count; i++) { par1.Value=this.CheckBoxList1.Items[i].Value; par2.Value = this.CheckBoxList1.Items[i].Selected?"true":"false"; com.ExecuteNonQuery(); } }
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:42
-
Bonjour,
Vous pouvez voir si un élément est coché avec la propriété Selected :
Me.CheckBoxList1.Items[i].Selected
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:42
-
Bonjour,
Supprimez les guillemets autour de ‘true’. Instruction doit etre
…[i].Selected = True then
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:42
-
Bonjour,
Il faut utiliser les paramètres dans ‘insert into’. Créez aussi des paramètres pour ‘idlocalisation’ :
Dim param_idlocalisation as new sqlparameter(« idlocal »,System.Data.SqlDbType.Integer, 10)
param_idlocalisation.Value = DropDownListLocalisation.SelectedValue
et ‘iddsecteur’.
Il vous faut aussi une valeur pour IdPDP, car je ne vois pas aucune dans votre code. Ensuite, utilisez ces paramètres dans ExecuteSQL de cette façon :
« insert into … values (@idpdp, @idlocal, @iddsecteur ) »
Par contre, je vois que par1 et par2 ne sont plus utilisés dans votre scenario, donc vous pouvez les supprimer.
Avec Me.CheckBoxListFrontEnd.Items(i).Selected vous vérifiez si l’élément de la liste est cochee et vous ajoutez ensuite la valeur de l’élément dans un des paramètres sql. Vous utilisez ces paramètres dans ‘insert into’ comme dans l’exemple dessus.
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
Bonjour,
Créez et associez un connexion à votre commande :
com.Connection = new SqlConnection("< chaine de connexion >"); com.Connection.Open();
N'oubliez pas de la fermer (méthode Close()) après votre ExecuteNonQuery()
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
Bonjour,
Dim par1 As New SqlParameter("@myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("@mycheck", System.Data.SqlDbType.NVarChar, 10)
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
Bonjour,
Le nom des paramètres ne sont pas les mêmes entre le code de la requête et la définition des paramètres.
Dim com As New SqlCommand("declare @idlocalisation char; declare @IdSecteur char; insert into interpdp (idPDP, idLocalisation, IdSecteur) values (330, @IdLocalisation, @IdSecteur)") ... Dim param_idlocalisation As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10)
Regardez le nom du paramètre idlocal vs idlocalisation, ils sont incorrects. De plus les paramètres param_idlocalisation et param_idsecteur ne sont pas ajouté à avotre commande SQL.
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
Bonjour,
com.Parameters.Add(param_idlocalisation) com.Parameters.Add(param_idsecteur)
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
Bonjour,
Utilisez une condition dans votre boucle pour ne récupérer que les checkbox cochées :
If Me.CheckBoxListFrontEnd.Items(i).Selected = True Then ... End If
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
merci beaucoup,
mon problemùe est resolu,
voici mon script :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim par1 As New SqlParameter("myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("mycheck", System.Data.SqlDbType.NVarChar, 10) Dim param_idlocalisation As New SqlParameter("idlocalisation", System.Data.SqlDbType.Char, 10) Dim param_idSecteur As New SqlParameter("IdSecteur", System.Data.SqlDbType.Char, 10) Dim com As New SqlCommand(" insert into interpdp (idPDP, idLocalisation, IdSecteur) values (330, @IdLocalisation, @IdSecteur)") Dim i As Integer Dim idlocalisation As Int32 com.Connection = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SuiviPDP;Data Source=DNKPC827\SQLEXPRESS") com.Connection.Open() com.Parameters.Add(par1) com.Parameters.Add(par2) com.Parameters.Add(param_idlocalisation) com.Parameters.Add(param_idSecteur) param_idlocalisation.Value = DropDownListLocalisation.SelectedValue Idlocalisation = DropDownListLocalisation.SelectedValue Select Case Idlocalisation Case Is = 1 For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 param_idSecteur.Value = CheckBoxListFrontEnd.Items(i).Value par1.Value = Me.CheckBoxListFrontEnd.Items(i).Value par2.Value = If(Me.CheckBoxListFrontEnd.Items(i).Selected, "true", "false") If Me.CheckBoxListFrontEnd.Items(i).Selected = True Then com.ExecuteNonQuery() End If Next Case Is = 2
cordialement.
- Marqué comme réponse hamra lundi 31 mai 2010 08:52
- Non marqué comme réponse hamra lundi 31 mai 2010 09:39
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
j'ai remarqué que pour tester la page j'avais initialisé la valeur de l'idpdp à "330", car je n'arrive pas a recupérer l'idpdp qui se trouve dans la page aspx ou j'ai les cases a cocher ect.
comment je peut recuperer l'idpdp ?
merci,
cordialement
- Marqué comme réponse hamra lundi 31 mai 2010 13:42
Toutes les réponses
-
-
-
Bonjour,
Voici un exemple de code qui ajoute les informations (valeur et coché/décoché) d’une CheckList dans une table. Vous pouvez particulariser votre procédure selon les informations que vous voulez stocker :
protected void Button1_Click(object sender, EventArgs e) { string constr = @"Data Source=(local);Initial Catalog=TestDB;Integrated Security=True"; SqlConnection con = new SqlConnection(constr); con.Open(); SqlParameter par1 = new SqlParameter("myvalue",System.Data.SqlDbType.NVarChar,10); SqlParameter par2 = new SqlParameter("mycheck", System.Data.SqlDbType.NVarChar,10); SqlCommand com = new SqlCommand("insert into CheckTable(value, [check]) values " + "(@myvalue, @mycheck);", con); com.Parameters.Add(par1); com.Parameters.Add(par2); int i; for(i=0; i<this.CheckBoxList1.Items.Count; i++) { par1.Value=this.CheckBoxList1.Items[i].Value; par2.Value = this.CheckBoxList1.Items[i].Selected?"true":"false"; com.ExecuteNonQuery(); } }
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:42
-
-
Bonjour,
Voici la version VB :
1. Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
2. Dim constr As String = "Data Source=(local);Initial Catalog=TestDB;Integrated Security=True"
3. Dim con As New SqlConnection(constr)
4. con.Open()
5.
6.
7. Dim par1 As New SqlParameter("myvalue", System.Data.SqlDbType.NVarChar, 10)
8. Dim par2 As New SqlParameter("mycheck", System.Data.SqlDbType.NVarChar, 10)
9. Dim com As New SqlCommand("insert into CheckTable(value, [check]) values " & "(@myvalue, @mycheck);", con)
10. com.Parameters.Add(par1)
11. com.Parameters.Add(par2)
12.
13.
14. Dim i As Integer
15. For i = 0 To Me.CheckBoxList1.Items.Count - 1
16. par1.Value = Me.CheckBoxList1.Items(i).Value
17. par2.Value = If(Me.CheckBoxList1.Items(i).Selected, "true", "false")
18.
19.
20. com.ExecuteNonQuery()
21. Next
22. End Sub
Vous pouvez utiliser cet outil pour faire la conversion C#/VB :
http://www.developerfusion.com/tools/convert/csharp-to-vb/
Tenez-moi au courant si vous avez d’autres questions sur ce problème.
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
-
merci, alex
mon probleme
est que j'ai une liste deroulante regroupant différentes localisation,
quand je change de localisation, ma checkboxlist s'actualise, pour avoir les secteurs de la localisation concerné.
dans ma base de donnée je souhaite enregistré dans une table intermediaire les secteurs qui on été coché, je doit donc par la meme occasion enregistrer la localisation dans ma base.
les données que je souhaite enregistrer doivent etre enregistré dans la table InterPDP
pour etre plus claire voici une partie du MLD :
Secteur( Idsecteur, Nomsecteur)
Localisation, (IdLocalisation, nomlocalisation)
PDP (idpdp, intitule, datesignture)
InterPDP (IdPDP, IdLocalisation, IdSecteur)merci pour le temp passé,
cordialement.
-
Bonjour,
Dans ce cas utilisez le code de M. PETRESCU, mais exécutez la requête suivante :
SqlCommand("insert into Localisation(NomLocalisation) values (@nomLocalisation) SELECT @@IDENTITY", con)
Exécutez la requête, mais en utiliser ExecuteScalar afin de récupérer le dernier identifiant ajouté :
Dim lastId As Integer lastId = Convert.ToInt32(cmd.ExecuteScalar())
Il vous faudra exécuter à nouveau une requête INSERT pour InterPDP avec l'identifiant IdLocalisation précédemment ajouté.
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr -
bonjour,
merci pour la reponse,
je ne doit pas inserer de localisation dans la table localisation,
prenons l'exemple suivant , je suis en cour d'enregistrer un PDP, lors de la saisie de la localisation j'ai une liste deroulante, je choisi donc une localisation "production", lorsque j'ai choisi ma localisation j'ai une checkboxlist representant les secteur de ma localisation, je coche donc les secteur souhaités. une fois l'enregiostrement terminé je clique sur enregistrer.
suite a cette enregistrement je souhaite que dans la table INTERPDP soit enregistré les données saisie ainsi si j'ai coché 3 checkboxlist j'auré dans ma table INTERPDP trois enregistrement exemple :
interpdp(idpdp, idlocalisation, idsecteur)
ainsi j'auré :
interpdp(3,2,2)
(3,2,5)
(3,2,8)
pour le pdp 3 et la localisation numero 2 j'ai trois secteur, le secteur 2, 5, et 8.
merci pour votre aide
-
Bonjour,
La table ou vous enregistrez l’information n’est pas relevant pour ce cas. Ce qui est important, par contre, est de parcourir toutes les éléments de votre checklist et de déterminer les valeurs cochées. Pour chaque valeur cochée, vous faites ensuite un ‘Insert Into’ avec les paramètres désirés.
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
-
bonjour,
j'ai essayé de faire un script pour parcourir toute les valeur de ma checkbox list mais sa m'affiche un message d'erreur
voici le script :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim NbValeur As Integer Dim Idlocalisation As Int32 idlocalisation = DropDownListLocalisation.SelectedValue Select Case idlocalisation Case Is = 1 'requete permettant d'avoir le nombre de case dans ma checkboxlist NbValeur = ExecuteSQL("SELECT count(*)FROM SECTEUR WHERE IdLocalisation = 1") 'parcour la chexbox pour voir quel valeur est coché pour ensuite l'enregistré For i = 0 To NbValeur - 1 If CheckBoxListFrontEnd.DataValueField + 1 = i And CheckBoxListFrontEnd.DataValueField Then ExecuteSQL("insert into interpdp (idPDDP, idLocalisation, IdSecteur) values (IdPDP, IdLocalisation, @IddSecteur") End If Next Case Is = 2
sa bugg car je ne sait pas comment faire pour savoir si une case est coché ou non,
pouvez vous s'il vous plait me dire si je suis bien parti ? et me dire quel est la maniere de savoir si une case est coché ou non ?
merci de votre aide.
-
Bonjour,
Vous pouvez voir si un élément est coché avec la propriété Selected :
Me.CheckBoxList1.Items[i].Selected
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:42
-
merci,
quand je met la propriété selected, j'ai un message qui m'indique "fin d'instruction attendue" et je ne comprend pas pour quel raison,
voici mon script :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim NbValeur As Integer Dim Idlocalisation As Int32 idlocalisation = DropDownListLocalisation.SelectedValue Select Case idlocalisation Case Is = 1 'requete permettant d'avoir le nombre de case dans ma checkboxlist NbValeur = ExecuteSQL("SELECT count(*)FROM SECTEUR WHERE IdLocalisation = 1") 'parcour la checkbox pour voir quel valeur est coché pour ensuite l'enregistré For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 If Me.CheckBoxListFrontEnd.Items[i].Selected = "true" then ExecuteSQL("insert into interpdp (idPDDP, idLocalisation, IdSecteur) values (IdPDP, IdLocalisation, @IddSecteur") End If Next Case Is = 2
c'est la ligne ou il y a le "if" qui est souligné en m'indiquant le message d'erreur.
-
Bonjour,
Supprimez les guillemets autour de ‘true’. Instruction doit etre
…[i].Selected = True then
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:42
-
re-bonjour,
j'ai utilisé le scrit que alex a posté et je l'ai modifié, maintenant sa donne sa :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim Idlocalisation As Int32 Dim par1 As New SqlParameter("myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("mycheck", System.Data.SqlDbType.NVarChar, 10) idlocalisation = DropDownListLocalisation.SelectedValue Select Case idlocalisation Case Is = 1 'parcour la checkbox pour voir quel valeur est coché pour ensuite l'enregistré For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 par1.Value = Me.CheckBoxListFrontEnd.Items(i).Value par2.Value = If(Me.CheckBoxListFrontEnd.Items(i).Selected, "true", "false") ExecuteSQL("insert into interpdp (idPDDP, idLocalisation, IdSecteur) values ( IdPDP, IdLocalisation, IddSecteur") Next Case Is = 2
je n'ai aucun message d'erreur quand je lance mon application, mais quand je clique sur enregistrer rien ne se passe "je clique dans le vide".
y a t'il une personne qui peut m'aider s'il vous plait ?
avec toute la volonté que je met dans cette appli sa ne fonctionne pas.
mercii
-
Bonjour,
Il faut utiliser les paramètres dans ‘insert into’. Créez aussi des paramètres pour ‘idlocalisation’ :
Dim param_idlocalisation as new sqlparameter(« idlocal »,System.Data.SqlDbType.Integer, 10)
param_idlocalisation.Value = DropDownListLocalisation.SelectedValue
et ‘iddsecteur’.
Il vous faut aussi une valeur pour IdPDP, car je ne vois pas aucune dans votre code. Ensuite, utilisez ces paramètres dans ExecuteSQL de cette façon :
« insert into … values (@idpdp, @idlocal, @iddsecteur ) »
Par contre, je vois que par1 et par2 ne sont plus utilisés dans votre scenario, donc vous pouvez les supprimer.
Avec Me.CheckBoxListFrontEnd.Items(i).Selected vous vérifiez si l’élément de la liste est cochee et vous ajoutez ensuite la valeur de l’élément dans un des paramètres sql. Vous utilisez ces paramètres dans ‘insert into’ comme dans l’exemple dessus.
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
merci alex,
ma solution est comme ci dessous maintenant :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim Idlocalisation As Int32 Dim param_idlocalisation As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10) Dim param_idSecteur As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10) param_idlocalisation.Value = DropDownListLocalisation.SelectedValue Idlocalisation = DropDownListLocalisation.SelectedValue Select Case Idlocalisation Case Is = 1 'parcour la checkbox pour voir quel valeur est coché pour ensuite l'enregistré For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 param_idSecteur.Value = CheckBoxListFrontEnd.Items(i).Value If Me.CheckBoxListFrontEnd.Items[i].Selected=true then ExecuteSQL("insert into interpdp (idPDDP, idLocalisation, IdSecteur) values (@IdPDP, @IdLocalisation, @IddSecteur") End If Next Case Is = 2
cela dit j'ai deux probleme, je ne sait pas comment recupérer l'idpdp, il est enregistré dans la meme page que les secteur et les localisations, quand je tape param mon intellisence me donne "paramidpdp" et ce que c'est utilisable ?
mon deuxieme probleme concerne toujours le if j'ai enlevé les guillemet mais j'ai le message d'erreur suivant :
"une valeur type 'system.web.UI.Wbcontrols.ListItem collection' ne peut être convertie en boolean'"
je te remercie pour ton aide alex.
-
je vient de changer de methode j'utilise la premiere methode que tu a posté, mais je ne sait toujours pas comment recuperer l'idpdp qui est dans la page aspx, de plus j'ai ce meaasage d'erreur qui pointe sur "com.ExecuteNonQuery()" m'indiquant "ExecuteNonQuery : la propriété Connection n'a pas été initialisée." :
monn nouveau script correspond a :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim par1 As New SqlParameter("myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("mycheck", System.Data.SqlDbType.NVarChar, 10) Dim com As New SqlCommand("insert into interpdp (idPDDP, idLocalisation, IdSecteur) values (330, @IdLocalisation, @IdSecteur") Dim i As Integer Dim param_idlocalisation As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10) Dim param_idSecteur As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10) Dim idlocalisation As Int32 com.Parameters.Add(par1) com.Parameters.Add(par2) param_idlocalisation.Value = DropDownListLocalisation.SelectedValue Idlocalisation = DropDownListLocalisation.SelectedValue Select Case Idlocalisation Case Is = 1 For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 param_idSecteur.Value = CheckBoxListFrontEnd.Items(i).Value par1.Value = Me.CheckBoxListFrontEnd.Items(i).Value par2.Value = If(Me.CheckBoxListFrontEnd.Items(i).Selected, "true", "false") com.ExecuteNonQuery() Next Case Is = 2
cordialement. -
Bonjour,
Créez et associez un connexion à votre commande :
com.Connection = new SqlConnection("< chaine de connexion >"); com.Connection.Open();
N'oubliez pas de la fermer (méthode Close()) après votre ExecuteNonQuery()
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
bonjour,
suite a vos remarques j'ai modifier mon script comme ci dessous :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim par1 As New SqlParameter("myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("mycheck", System.Data.SqlDbType.NVarChar, 10) Dim com As New SqlCommand("insert into interpdp (idPDDP, idLocalisation, IdSecteur) values (330, @IdLocalisation, @IdSecteur") Dim i As Integer Dim param_idlocalisation As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10) Dim param_idSecteur As New SqlParameter("IdSect", System.Data.SqlDbType.NVarChar, 10) Dim idlocalisation As Int32 com.Connection = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SuiviPDP;Data Source=DNKPC827\SQLEXPRESS") com.Connection.Open() com.Parameters.Add(par1) com.Parameters.Add(par2) param_idlocalisation.Value = DropDownListLocalisation.SelectedValue Idlocalisation = DropDownListLocalisation.SelectedValue Select Case Idlocalisation Case Is = 1 For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 param_idSecteur.Value = CheckBoxListFrontEnd.Items(i).Value par1.Value = Me.CheckBoxListFrontEnd.Items(i).Value par2.Value = If(Me.CheckBoxListFrontEnd.Items(i).Selected, "true", "false") com.ExecuteNonQuery() Next Case Is = 2
cependant j'ai un message d'erreur m'indiquant que la variable scalaire "@idLocalisation" doit etre declaré, je ne comprend pas car elle est declaré dans mon script,
merci,
cordialement
-
Bonjour,
Dim par1 As New SqlParameter("@myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("@mycheck", System.Data.SqlDbType.NVarChar, 10)
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
merci,
j'avais dans mon script posté precedemment declaré les variables par1 et par2, sa ne fonctionné pas car dans la requete d'insertion je n'avais pas declaré mes variables scalaire, je l'ai donc fait.
mais j'ai un nouveau probleme qui m'indique, "Impossible d'insérer la valeur NULL dans la colonne 'IdLocalisation', table 'SuiviPDP.dbo.InterPDP'. Cette colonne n'accepte pas les valeurs NULL. Échec de INSERT. L'instruction a été arrêtée." je sait que dans ma base de données la variable "idlocalisation" avait comme propriété non null, donc si aucune valeur dans l'insertion voulé etre inséré j'aurai ce message, mais je ne comprend pas pourquoi on ne recupere pas la valeur de "idlocalisation"
voici mon script :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim par1 As New SqlParameter("myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("mycheck", System.Data.SqlDbType.NVarChar, 10) Dim com As New SqlCommand("declare @idlocalisation char; declare @IdSecteur char; insert into interpdp (idPDP, idLocalisation, IdSecteur) values (330, @IdLocalisation, @IdSecteur)") Dim i As Integer Dim param_idlocalisation As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10) Dim param_idSecteur As New SqlParameter("IdSecteur", System.Data.SqlDbType.NVarChar, 10) Dim idlocalisation As Int32 com.Connection = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SuiviPDP;Data Source=DNKPC827\SQLEXPRESS") com.Connection.Open() com.Parameters.Add(par1) com.Parameters.Add(par2) param_idlocalisation.Value = DropDownListLocalisation.SelectedValue Idlocalisation = DropDownListLocalisation.SelectedValue Select Case Idlocalisation Case Is = 1 For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 param_idSecteur.Value = CheckBoxListFrontEnd.Items(i).Value par1.Value = Me.CheckBoxListFrontEnd.Items(i).Value par2.Value = If(Me.CheckBoxListFrontEnd.Items(i).Selected, "true", "false") com.ExecuteNonQuery() Next
vous pouvez constater que "idlocalisation prend toujours une valeur par rapport au "case", mes test son toujour réalisé a partir du premier case.
merci,
cordialement
-
Bonjour,
Le nom des paramètres ne sont pas les mêmes entre le code de la requête et la définition des paramètres.
Dim com As New SqlCommand("declare @idlocalisation char; declare @IdSecteur char; insert into interpdp (idPDP, idLocalisation, IdSecteur) values (330, @IdLocalisation, @IdSecteur)") ... Dim param_idlocalisation As New SqlParameter("idlocal", System.Data.SqlDbType.NVarChar, 10)
Regardez le nom du paramètre idlocal vs idlocalisation, ils sont incorrects. De plus les paramètres param_idlocalisation et param_idsecteur ne sont pas ajouté à avotre commande SQL.
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
merci,
je vient de modifier les erreurs, mais les parametres param_idlocalisation et param_idsecteur comment doient-ils être ajouté a ma commande sql ?
je pesné que grace à ces deux lignes ci-dessous s'etait bon :
Dim param_idlocalisation As New SqlParameter("idlocalisation", System.Data.SqlDbType.Char, 10) Dim param_idSecteur As New SqlParameter("IdSecteur", System.Data.SqlDbType.Char, 10)
cordialement. -
Bonjour,
com.Parameters.Add(param_idlocalisation) com.Parameters.Add(param_idsecteur)
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
-
Bonjour,
Utilisez une condition dans votre boucle pour ne récupérer que les checkbox cochées :
If Me.CheckBoxListFrontEnd.Items(i).Selected = True Then ... End If
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
merci beaucoup,
mon problemùe est resolu,
voici mon script :
Protected Sub EnregistrementSecteur_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EnregistrementSecteur.Click Dim par1 As New SqlParameter("myvalue", System.Data.SqlDbType.NVarChar, 10) Dim par2 As New SqlParameter("mycheck", System.Data.SqlDbType.NVarChar, 10) Dim param_idlocalisation As New SqlParameter("idlocalisation", System.Data.SqlDbType.Char, 10) Dim param_idSecteur As New SqlParameter("IdSecteur", System.Data.SqlDbType.Char, 10) Dim com As New SqlCommand(" insert into interpdp (idPDP, idLocalisation, IdSecteur) values (330, @IdLocalisation, @IdSecteur)") Dim i As Integer Dim idlocalisation As Int32 com.Connection = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SuiviPDP;Data Source=DNKPC827\SQLEXPRESS") com.Connection.Open() com.Parameters.Add(par1) com.Parameters.Add(par2) com.Parameters.Add(param_idlocalisation) com.Parameters.Add(param_idSecteur) param_idlocalisation.Value = DropDownListLocalisation.SelectedValue Idlocalisation = DropDownListLocalisation.SelectedValue Select Case Idlocalisation Case Is = 1 For i = 0 To Me.CheckBoxListFrontEnd.Items.Count - 1 param_idSecteur.Value = CheckBoxListFrontEnd.Items(i).Value par1.Value = Me.CheckBoxListFrontEnd.Items(i).Value par2.Value = If(Me.CheckBoxListFrontEnd.Items(i).Selected, "true", "false") If Me.CheckBoxListFrontEnd.Items(i).Selected = True Then com.ExecuteNonQuery() End If Next Case Is = 2
cordialement.
- Marqué comme réponse hamra lundi 31 mai 2010 08:52
- Non marqué comme réponse hamra lundi 31 mai 2010 09:39
- Marqué comme réponse Gilles TOURREAUModerator lundi 31 mai 2010 09:41
-
j'ai remarqué que pour tester la page j'avais initialisé la valeur de l'idpdp à "330", car je n'arrive pas a recupérer l'idpdp qui se trouve dans la page aspx ou j'ai les cases a cocher ect.
comment je peut recuperer l'idpdp ?
merci,
cordialement
- Marqué comme réponse hamra lundi 31 mai 2010 13:42
-