我一直没能找到这个问题的正确解决方案,我知道这很简单,但我忘了怎么做了。我有一个表单,其中有一个文本字段,用户不需要填写它。我想在数据库中插入NULL,而不是它当前正在做的0。不过,我不确定我错过了什么。文本框被命名为taxRateTxt,我当前拥有的文本框不适用于我:
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();
}这里我漏掉了什么?
发布于 2014-02-07 23:01:10
删除此代码块
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));到这个
cmd.Parameters.Add(new SqlParameter("@TaxRate", string.IsNullOrEmpty(taxRateTxt.Text) ? (object)DBNull.Value : taxRateTxt.Text));发布于 2014-02-07 23:01:50
传入Convert.DBNull (或DBNull.Value)就可以了。
http://msdn.microsoft.com/en-us/library/system.convert.dbnull(v=vs.110).aspx
当然,您必须先检查字符串值,然后再将其传入。
https://stackoverflow.com/questions/21630929
复制相似问题