c# – 如何清楚,快速地使用DBNull.Value参数化一个空字符串

我厌倦了写下面的代码:

/* Commenting out irrelevant parts
public string MiddleName;
public void Save(){
    SqlCommand = new SqlCommand();
    // blah blah...boring INSERT statement with params etc go here. */
    if(MiddleName==null){
        myCmd.Parameters.Add("@MiddleName", DBNull.Value);
    }
    else{
        myCmd.Parameters.Add("@MiddleName", MiddleName);
    }
    /*
    // more boring code to save to DB.
}*/

所以,我写道:

public static object DBNullValueorStringIfNotNull(string value)
{
    object o;
    if (value == null)
    {
        o = DBNull.Value;
    }
    else
    {
        o = value;
    }
    return o;
}

// which would be called like:
myCmd.Parameters.Add("@MiddleName", DBNullValueorStringIfNotNull(MiddleName));

如果这是一个很好的方式去做这个,那么你建议作为方法名称? DBNullValueorStringIfNotNull有点冗长和混乱。

我也乐意完全解决这个问题。我会喜欢这样做:

myCmd.Parameters.Add("@MiddleName", MiddleName==null ? DBNull.Value : MiddleName);

但这不行,因为“操作符”不能应用于“string”和“System.DBNull”类型的操作数。

如果重要,我有C#3.5和SQL Server 2005。

将任何一个值投射到对象中,并编译它。

myCmd.Parameters.Add("@MiddleName", MiddleName==null ? (object)DBNull.Value : MiddleName);
http://stackoverflow.com/questions/2602949/how-do-i-parameterize-a-null-string-with-dbnull-value-clearly-and-quickly

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 如何清楚,快速地使用DBNull.Value参数化一个空字符串