Réglage d'une chaîne vide à la valeur null sur les Insérer dans la base de données
Je n'ai pas été en mesure de trouver la bonne solution pour ce problème, et je sais que c'est si simple, mais j'ai oublié comment le faire. J'ai un formulaire avec un champ texte champ qui n'est pas requis par l'utilisateur à remplir. Je veux insérer la valeur NULL dans la base de données, pas un 0 qui est-il en train de faire. Je ne suis pas sûr de ce que je suis absent. La zone de texte est nommé taxRateTxt
, et ce que j'ai actuellement ne fonctionne pas pour moi:
try
{
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AbleCommerce"].ToString()))
{
cn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.Parameters.Add(new SqlParameter("@FIPSCountyCode", countyCodeTxt.Text));
cmd.Parameters.Add(new SqlParameter("@StateCode", stateCodeList.SelectedValue));
cmd.Parameters.Add(new SqlParameter("@CountyName", countyNameTxt.Text));
string taxStr = taxRateTxt.Text;
//test for an empty string and set it to db null
if (taxStr == String.Empty)
{
taxStr = DBNull.Value;
}
cmd.Parameters.Add(new SqlParameter("@TaxRate", taxStr));
if (AddBtn.Visible == true)
cmd.CommandText = addQuery;
if (EditBtn.Visible == true)
{
cmd.CommandText = editQuery;
}
cmd.ExecuteNonQuery();
cn.Close();
}
Ce qui me manque ici?
Avez-vous une valeur par défaut pour la colonne?
Votre déclaration
si vous avez besoin d'insérer la valeur null ,omettez simplement que le champ de vous Insérer un Script SQL(si il n'y a pas de valeur par défaut pour ce champ).Pouvez-vous ajouter vos insérer un script pour le poste?
Votre déclaration
taxStr = DBNull.Value;
devrait vous donner une erreur de compilation.si vous avez besoin d'insérer la valeur null ,omettez simplement que le champ de vous Insérer un Script SQL(si il n'y a pas de valeur par défaut pour ce champ).Pouvez-vous ajouter vos insérer un script pour le poste?
OriginalL'auteur Dejsa Cocan | 2014-02-07
Vous devez vous connecter pour publier un commentaire.
Enlever ce bloc de code
et de changer cette
à ce
DBNull.Value
àobject
truc. Sauve beaucoup de temps -)Cela a fonctionné pour moi. Merci!
OriginalL'auteur ekad
Passant
Convert.DBNull
(ouDBNull.Value
) de le faire.http://msdn.microsoft.com/en-us/library/system.convert.dbnull(v=vs. 110).aspx
Bien sûr, vous aurez à vérifier la valeur de la chaîne en premier et ensuite passer que dans la place.
OriginalL'auteur Manny