![](/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.