Dej*_*can 3 .net c# string dbnull sql-insert
我一直无法为这个问题找到合适的解决方案,我知道这很简单,但我忘记了怎么做.我有一个带有一个textfield字段的表单,用户不需要填写.我想在数据库中插入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();
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
eka*_*kad 20
删除这段代码
string taxStr = taxRateTxt.Text;
//test for an empty string and set it to db null
if (taxStr == String.Empty)
{
taxStr = DBNull.Value;
}
Run Code Online (Sandbox Code Playgroud)
并改变这一点
cmd.Parameters.Add(new SqlParameter("@TaxRate", taxStr));
Run Code Online (Sandbox Code Playgroud)
对此
cmd.Parameters.Add(new SqlParameter("@TaxRate", string.IsNullOrEmpty(taxRateTxt.Text) ? (object)DBNull.Value : taxRateTxt.Text));
Run Code Online (Sandbox Code Playgroud)