2010-07-28 3 views
0

J'ai beaucoup de TextBOX dans asp.net qui accepte la valeur de l'utilisateur et le stocke dans SQL DB via SQL SERVER .. Lorsque l'utilisateur ne saisit pas la valeur dans la zone de texte, ce qui signifie que je peux permettre à la valeur nulle pour celui figurant dans le tableau, mais si sa variable entière il stocke 0, c'est parce queen utilisant isDBNULL pour stocker null dans la base de données

int HostelFees ; 
HostelFees = TextBox1.Text; 
//function called to store the hostel fee 
insertFee(hostelFees); 

dans la base de données qu'il stocke 0, que je ne veux pas, mais pour être nULL .. Je suis allé à travers de nombreuses documentations et ne comprenais que peu de choses sur ISDBNULL, mais je suis encore confus concernant l'insertion de comment je vais insérer null. :(et je ne suis pas en utilisant de toute procédure stockée .. enfait dans la fonction insertFee(hostelFees) je viens d'utiliser command.ExecuteNonQuery pour l'insérer

S'il vous plaît quelqu'un peut me donner une bonne explation ou un lien que je parle. Merci,

Répondre

1

vous devriez envisager d'utiliser int?, qui est un nullable version de int. Dans ce cas, vous pouvez utiliser la HostelFees.HasValue vérification pour voir si une valeur nULL est sto rouge et HostelFees.Value pour utiliser la partie entière.

Veuillez noter que dans votre exemple vous stockez directement une valeur de chaîne dans une variable entière. Cela ne marchera pas. Ce que vous voulez est d'abord analyser, puis stocker null si ce n'est pas un nombre entier. Quelque chose comme ceci:

int? HostelFees = null; 
int parsedValue; 

if (int.TryParse(TextBox1.Text, out parsedValue)) { 
    HostelFees = parsedValue; 
} 

//function called to store the hostel fee 
insertFee(hostelFees); 

Et au lieu d'attribuer la valeur entière directement au DbParameter, vous pouvez utiliser la construction suivante:

parameter.Value = (HostelFees.HasValue ? HostelFees.Value : DbNull.Value); 
+0

puis lors de la récupération de la valeur de la base de données pour l'afficher, comment je vérifie et dis pas appliacble? Je veux dire que vous dites à l'insertion, mais que vous obtenez la valeur dont j'ai besoin estDBNULL? –

+0

Ajout d'un exemple pour cela. – Prutswonder

1

votre valeur entière doit être annulable, juste ajouter? après la déclaration de type

int? HostelFees ; 
Questions connexes