![](/img/trans.png)
[英]how to pass null value to database from cmd.Parameters.AddWithValue in asp.net
[英]cmd.Parameters.AddWithValue() when value is null?
我认为这很简单,但是当value为null时,是否可以使用Isnull(field,[something])?
/*************Connectionstring is located in Web.config ******************/
string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
/*************Exec stored Procedure from tblActivity ******************/
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmd = new SqlCommand("sp_tblActivity", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Activity", txtActivity.Text); // , Isnull(txtActivity.text, *changetosomething*)
cmd.Parameters.AddWithValue("@Comment", txtComment.Text);
con.Open();
cmd.ExecuteNonQuery();
BindGridviewActivity();
}
cmd.Parameters.AddWithValue("@Activity", isnull(txtActivity.Text, ***[dosomething]***)
可以在开始时使用if()语句吗?
首先,您可能应该首先避免使用AddWithValue()。
暂时将其搁置一旁,您正在查看控件的Text
属性。 要使Text
属性始终为null
必须做些真正的错误。 您可能只需要检查它是否为空(或者只有空白):
cmd.Parameters.AddWithValue("@Activity", string.IsNullOrEmpty(txtActivity.Text) ? "change to something" : txtActivity.Text);
但是,也许您想向数据库发送实际的SQL NULL
。 SQL NULL
与C#/。Net null
。 在这种情况下,您可以这样做:
cmd.Parameters.AddWithValue("@Activity", string.IsNullOrEmpty(txtActivity.Text) ? DBNull.Value : txtActivity.Text);
您可以使用null-coalescing运算符 :
cmd.Parameters.AddWithValue("@Activity", txtActivity.Text ?? "something else");
我为DBNULL使用了方法扩展...
public static class Extensions
{
public static SqlParameter AddWithNullValue(this SqlParameterCollection collection, string parameterName, object value)
{
if (value == null)
return collection.AddWithValue(parameterName, DBNull.Value);
else
return collection.AddWithValue(parameterName, value);
}
}
因此...而不是使用AddWithValue ....您将使用AddWithNullValue
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.