Commande SQL INSERT INTO valeur NULL dans un champ numérique [Résolu]

hezar 14 Messages postés dimanche 14 octobre 2007Date d'inscription 14 avril 2008 Dernière intervention - 6 avril 2008 à 22:28 - Dernière réponse : mrezguia 4 Messages postés dimanche 22 février 2009Date d'inscription 1 juin 2009 Dernière intervention
- 1 juin 2009 à 20:40
Bonsoir,

Je précise que je suis débutant et "autodidacte" en programmation.

J'ai une table access CLIENT qui contient le nom des clients le prenom ... ainsi qu'un champ numérique Age qui peut etre vide.
une partie de mon appli permet de remplir cette table à l'aide d'une form contenant des textbox txbNom,txbPrenom,...,txbAge.

J'ai eu quelques difficultés pour arriver à gerer le fait que la textbox txbAge puisse etre vide car dans le cas ou elle n'était pas renseignée l'execution de ma commande SQL planté du fait que "vide" n'est pas de type numérique.

J'ai finalement opté pour le code suivant :

string sSQL = "INSERT INTO CLIENTS ([Nom],[Prenom],...[Age]) VALUES ('" + txbNom.Text + "','"txPrenom.Text +', ... + "',@Age)";
OleDbCommand oCmd = new OleDbCommand(sRequete, CNXaccess);
oCmd.Parameters.Add("@Num",this.textBox1.Text);
if (string.IsNullOrEmpty(this.txbAge.Text))
oCmd.Parameters["@Age"].Value = DBNull.Value;

Ce code est-il correct ou existe-t-il "mieux" ?

Merci

HzR
Afficher la suite 

3 réponses

Répondre au sujet
sygmo 21 Messages postés jeudi 7 octobre 2004Date d'inscription 5 mars 2018 Dernière intervention - 7 avril 2008 à 15:51
+3
Utile
salut. t'as le choix. soit la saisie de l'age est facultative; dans ce cas en mode creation sous access, selectionne le champ age. puis donne la valeur "oui" à la propriété "null autorisé en dans de l'ecran.


si la saisie de l'age est obligatoire alors donnes la valeur "non" à cette même propriété. tu renseigneras les  autres propriétés telles que "message si erreur".
ensuite dans une procedure  "KEYPRESS"  du texbox de age tu ecrira qlq chose semblable a ceci:
 
private void .txtaga_keypress(...)
if  keyascii = 13 then
 while txtage = ""
 msgBox("entrer une valeur numerique")
end while
end if
end sub
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sygmo
hezar 14 Messages postés dimanche 14 octobre 2007Date d'inscription 14 avril 2008 Dernière intervention - 9 avril 2008 à 11:45
0
Utile
Oki merci sygmo.
Commenter la réponse de hezar
mrezguia 4 Messages postés dimanche 22 février 2009Date d'inscription 1 juin 2009 Dernière intervention - 1 juin 2009 à 20:40
0
Utile
salut
je suis entrain de crée un cite web asp.net mais j'ai une problème avec l'insertion des données  dans une table sql server 2000, à l'aide d'un code C#
merci de vos attention et je besoin de vos aide pleeeeeeeeeeeeeeeeeeeeeese
car j'ai la soutenance de projet de fin d'étude à une duré très courte
Commenter la réponse de mrezguia

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.