Commande SQL INSERT INTO valeur NULL dans un champ numérique

Résolu
hezar Messages postés 14 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 14 avril 2008 - 6 avril 2008 à 22:28
mrezguia Messages postés 4 Date d'inscription dimanche 22 février 2009 Statut Membre Dernière intervention 1 juin 2009 - 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
A voir également:

3 réponses

sygmo Messages postés 19 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 5 mars 2018
7 avril 2008 à 15:51
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
3
hezar Messages postés 14 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 14 avril 2008
9 avril 2008 à 11:45
Oki merci sygmo.
0
mrezguia Messages postés 4 Date d'inscription dimanche 22 février 2009 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 20:40
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
0
Rejoignez-nous