日期:2014-05-17  浏览次数:20955 次

请问,更新数据库遇到空值,怎么办呢

public void set_更新数据源(客户信息 信息)
{
    private string str = "server = '(local)';database=Person;integrated security = true";
    string sqlstring = "UPDATE 客户表 SET 姓名 = @姓名,年龄 = @年龄,电子邮件=@电子邮件 WHERE 客户编号 = @客户编号";
    SqlConnection con = new SqlConnection(str);
    SqlCommand cmd = new SqlCommand(sqlstring,con);
    cmd.Parameters.AddWithValue("@姓名",信息.Name);
    cmd.Parameters.AddWithValue("@年龄", 信息.Age);
    cmd.Parameters.AddWithValue("@电子邮件", 信息.Email);
    cmd.Parameters.AddWithValue("@客户编号", 信息.Number);
    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
    }
    finally
    {
        con.Close();
    }
}


问题:
信息对象的Email属性值为null,在提交数据库更新时,不能更新啊,这是为什么呢?
数据库中的电子邮件列是允许null值的啊,为什么插不进呢?
该怎么处理null值?

------解决方案--------------------
如果是NULL,用“”替换
------解决方案--------------------
空值就用字符串为空来代替了
------解决方案--------------------
數據庫中是DBNULL
------解决方案--------------------
當然也可以把NULL替換為""
------解决方案--------------------
ISNULL(字段,‘’) AS 字段
------解决方案--------------------
使用DBNull.Value
cmd.Parameters.AddWithValue("@电子邮件", 信息.Email ?? DBNull.Value);