Il faut que tu formates la chaine (en l'occurence 1) que tu récupères.
Va sur MSDN il y a une doc sur le formatage.
Prends l'habitude d'aller sur MSDN, tu as les docs complètes de toutes les classes, des tutos, des exemples
Il faut que tu formates la chaine (en l'occurence 1) que tu récupères.
Va sur MSDN il y a une doc sur le formatage.
Prends l'habitude d'aller sur MSDN, tu as les docs complètes de toutes les classes, des tutos, des exemples
Allez cadeau
string.Format("{0:000}", rader["IN_NUMINTER"])
et tu auras 1 au format 001
Qu'est ce qui ne marche pas avec la concaténation de la date?
Merci pour ton cadeau mais cela m'affiche toujours 1.
Faut bien que je le mette au niveau de ??mais il m'affiche aucune erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part NumInter.Text = Convert.ToString(...)
Pour la concaténation, ce qui fonctionne pas c'est ce que j'ai rajouté c'est à dire que ca me donneet les erreurs sont les suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part command = new SqlCommand("SELECT ISNULL(MAX(SUBSTRING(IN_NUMINTER, 12,3)),'" + DateTime.Today.ToShortDateString()+ "'"001)AS IN_NUMINTER FROM INTERVENTION WHERE (SUBSTRING (IN_NUMINTER,0,11)) = '" + DateTime.Today.ToShortDateString()+ "'", connection);je ne sait par ou commencer pour résoudre ce problème!!C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): ) attendu
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): ; attendu
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): ; attendu
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): ; attendu
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): ; attendu
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): ; attendu
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): ; attendu
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): Nouvelle ligne dans la constante
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): Terme d'expression non valide ')'
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(41): Trop de caractères dans le littéral de caractère
merci d'avance!!
Mais nan te fais pas chier à modifier la requête, tu concatènes directement dans le textbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part NumInter.Text = DateTime.Today.toshortstring() + " - " + string.Format("{0:000}", rader["IN_NUMINTER"]);
Ok, c'est vrai que c'est plus pratique de faire comme ça!!
Mais j'ai toujours le souci du nombre qui se met à 1 au lieu de 001.
Comment je peux faire car le format pourtant m'a l'air correste.
Bizarre tout ça!!
merci d'avance!!
Essaye de caster l'objet de la base en int
Code : Sélectionner tout - Visualiser dans une fenêtre à part string.Format("{0:000}", int.Parse(rader["IN_NUMINTER"].toString()));
C bon ça fonctionne comme je le souhaité mais j'ai le problème suivant : si l'intervention "30/01/2008-001" existe déja, faudrait que "001" devienne "002" et ainsi de suite (c'est à dire que si le "002" existe, il faut que ce soit "003"...)
Merci d'avance!!
????? Tu viens de faire une requête pour récupérer le max ! Comment veux-tu qu'elle existe?
Donc si je comprend bien, même si "30/01/2008-001" existe il me le notera "30/01/2008-002", c'est ça??
Mais le problème c'est que je vient d'essayer avec "30/01/2008-001" et "30/01/2008-002" inséré dans ma base de données mais le problème c'est qu'il m'affiche "30/01/2008-002" dans la TextBox alors qu'il me faudrait plustôt qu'il m'affiche "30/01/2008-003"??!!
merci d'avance!!
C bien ce qu'il me semblait mais je voyais pas trop ou le mettre mais j'ai réussit c'est bon!!
merci beaucoup pour tout!!
Bonjour tout le monde,
voila je me permet de relancer ce sujet car ce code suivant :Dans mon application NumIntervention est un label maintenant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 SqlConnection connection; SqlCommand command; SqlDataReader rader; // Code permettant d'incrémenter la TextBox // correspondant au Numéro des interventions. connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); command = new SqlCommand("SELECT ISNULL(MAX(SUBSTRING(IN_NUMINTER, 12,3))+1,001)AS IN_NUMINTER FROM INTERVENTION WHERE (SUBSTRING (IN_NUMINTER,0,11)) = '" + DateTime.Today.ToShortDateString()+ "'", connection); connection.Open(); try { rader = command.ExecuteReader(); try { while (rader.Read()) NumIntervention.Text = DateTime.Today.ToString("yyyy/MM/dd") + "-" + string.Format("{0:000}", int.Parse(rader["IN_NUMINTER"].ToString())); } finally { rader.Close(); } } finally { connection.Close(); }
Le problème c'est que ce code ne fonctionne plus c'est à dire qu'il m'affiche toujours "date du jour - 001".
EXEMPLE : Si 20/02/2008-001 est déja réalisé ben le problème c'est qu'il ne le voit pas. donc il me r'affiche "20/02/2008-001".
merci d'avance pour votre aide.
Le fait que ton composant soit un label au lieu d'un textBox ne pose pas de problème
ben alors pourquoi ca fonctionne plus maintenant??
T'as rien changé dans ta base? (nom de colonne, etc...)
Ta requête ressemble à quoi dans l'espion du debug?
Ben concernant la table INTERVENTION je n'ai rien changé.
Sinon lorsque je fais un espion, ça me donne :merci d'avance!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ISNULL(MAX(SUBSTRING(IN_NUMINTER, 12,3))+1,001)AS IN_NUMINTER FROM INTERVENTION WHERE (SUBSTRING (IN_NUMINTER,0,11)) = '20/02/2008'
Ca donne quoi qd tu l'exécutes dans SQL Server?
Lorsque j'exécutedans SqlServer, il me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ISNULL(MAX(SUBSTRING(IN_NUMINTER, 12,3))+1,001)AS IN_NUMINTER FROM INTERVENTION WHERE (SUBSTRING (IN_NUMINTER,0,11)) = '20/02/2008'
Sinon dans ma table intervention j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2IN_NUMINTER 1
merci d'avance!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 2008/02/15-001 hf hf 1 carte graph site gr vivien 19/02/2008 2008/02/20-001 Mc Mc 5 rrgre demande Site
Tes dates ne sont pas au même format dans ta requête et dans ta base, du coup il trouve pas de résultat, donc il te met 001
Ok.
Mais comment je peux faire pour mettre tout au format "année/mois/jour" ??
merci d'avance!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager