Probléme de concaténation dans un string
nadriel
-
zobbo Messages postés 9 Statut Membre -
zobbo Messages postés 9 Statut Membre -
Bonjour,
Je suis en train de développer un programme a des fins pédagogique
ce programme permet entre autre d'attribuer manuellement des droits a des utilisateurs sans passer directement par la base de donnée (MYSQL)
mais voila je n'arrive pas a concaténer ma requete ... c'est bête je sais mais je ne vois pas pourquoi ...
toutes les solutions que je trouve sur le net ne fonctionne pas
Voici le petit bout de code qui pause probléme :
J'ai aussi essayé
j'ai déjà vérifié ma variable "element", celle ci me donne bien l'id du bon client coché dans une listview.
quand j'affiche via un MessageBox.Show(sql);
cela me donne "UPDATE client SET valid_client = '1' WHERE valid_client ="
il n'y a donc pas ma variable pris en compte ...
mes variables sont des strings.
Merci de votre aide désolé si certain d'entre vous trouves cela plus que basique
EDIT: Précision du langage dans la coloration syntaxique.
...
Je suis en train de développer un programme a des fins pédagogique
ce programme permet entre autre d'attribuer manuellement des droits a des utilisateurs sans passer directement par la base de donnée (MYSQL)
mais voila je n'arrive pas a concaténer ma requete ... c'est bête je sais mais je ne vois pas pourquoi ...
toutes les solutions que je trouve sur le net ne fonctionne pas
Voici le petit bout de code qui pause probléme :
sql = "UPDATE client SET valid_client = '1' WHERE valid_client = '0' AND id_client = "+ element; update.CommandText = sql; //variable contenant id_client
J'ai aussi essayé
sql = "UPDATE client SET valid_client = '1' WHERE valid_client = '0' AND id_client = '{0}'", element;
j'ai déjà vérifié ma variable "element", celle ci me donne bien l'id du bon client coché dans une listview.
quand j'affiche via un MessageBox.Show(sql);
cela me donne "UPDATE client SET valid_client = '1' WHERE valid_client ="
il n'y a donc pas ma variable pris en compte ...
mes variables sont des strings.
Merci de votre aide désolé si certain d'entre vous trouves cela plus que basique
EDIT: Précision du langage dans la coloration syntaxique.
...
A voir également:
- Probléme de concaténation dans un string
- Vli product string - Forum Matériel & Système
- Inverse de concatener excel ✓ - Forum Excel
- Contraire de concatener - Forum Bureautique
- Excel - retour à la ligne dans formule concatener - Forum Programmation
- Excel concatener une plage de cellules ✓ - Forum Excel
4 réponses
Bonjour, messageBox n'est pas un outil de débugage.
Pour ce code
Je mets un point d'arrêt à la ligne 3 (Click Droit / Point d'arrêt, ou F9)
Quand je lance l'exécution, le programme s'arrête avant de lire cette instruction.

Si je survole la variable avec ma souris, je voie qu'elle est null

Si j'ai besoin de voir le contenue de cette variable tout au long de mon débugage je la mets en espion (Click Droit / Ajouter un Espion) qui viendra s'afficher sous la fenêtre de code

Je n'ai plus qu'a exécuter pas à pas (avec F10 F11 ou ces flèches
Et regarder comment ça évolue

Dans ce débuggage la concaténation (avec le code de gravgun) c'est correctement déroulée.
Pour ce code
private void TestNadriel()
{
string element = "2";
string sql = string.Format("UPDATE client SET valid_client = '1' WHERE valid_client = '0' AND id_client = '{0}'", element);
}
Je mets un point d'arrêt à la ligne 3 (Click Droit / Point d'arrêt, ou F9)

Quand je lance l'exécution, le programme s'arrête avant de lire cette instruction.

Si je survole la variable avec ma souris, je voie qu'elle est null

Si j'ai besoin de voir le contenue de cette variable tout au long de mon débugage je la mets en espion (Click Droit / Ajouter un Espion) qui viendra s'afficher sous la fenêtre de code

Je n'ai plus qu'a exécuter pas à pas (avec F10 F11 ou ces flèches

Et regarder comment ça évolue

Dans ce débuggage la concaténation (avec le code de gravgun) c'est correctement déroulée.
'lut
sql = "UPDATE client SET valid_client = '1' WHERE valid_client = '0' AND id_client = '{0}'", element;C'est pas correct, à mon avis ça ne compile même pas. As-tu tenté avec String.Format?
sql = String.Format("UPDATE client SET valid_client = '1' WHERE valid_client = '0' AND id_client = '{0}'", element);
Merci pour le petit rappel au niveau du mode pas a pas et des espions j'en avais besoin ;)
j'ai trouvé une solution
etant donnée que ma requête ce situe dans un if verifiant une checkbox j'ai pu recupere la valeu id comme ceci
ça fonctionne mais il reste un problème que je dois résoudre : cela ne fonctionne pas si l'utilisateur coche plusieurs case afin de validé un groupe de clients
voici a quoi ressemble mon appli : les nombres a coté des checkBox sont bien les bon id client ^^

j'ai trouvé une solution
etant donnée que ma requête ce situe dans un if verifiant une checkbox j'ai pu recupere la valeu id comme ceci
if (_e.Checked)
{
string sql = _e.Text; // Récupération de id_client
try
{
MySqlConnection conn = new MySqlConnection("Database='ticketingv3';server='127.0.0.1';User Id='root';pwd=''");
MySqlCommand update = conn.CreateCommand();
sql = String.Format("UPDATE client SET valid_client = '1' WHERE valid_client = '0' AND id_client = '{0}'", sql);
update.CommandText = sql; //variable contenant id_client
conn.Open();
listView1.Items[compteur].SubItems[2].Text = "true";
MySqlDataReader reader = update.ExecuteReader();
}
catch
{
MessageBox.Show("Erreur");
}
}
ça fonctionne mais il reste un problème que je dois résoudre : cela ne fonctionne pas si l'utilisateur coche plusieurs case afin de validé un groupe de clients
voici a quoi ressemble mon appli : les nombres a coté des checkBox sont bien les bon id client ^^
