如何使用C#代码在image列中插入NULL值

Fah*_*taf 1 .net sql sql-server stored-procedures image

我有以下代码

cmd. Parameters. AddWithValue("@Password",
    (string.IsNullOrEmpty(member.Password))
        ? (object)DBNull.Value
        : member.Password);
cmd.Parameters.AddWithValue("@Image",
    (member.Image==null)
        ? (object)SqlDbType.Image
        : member.Image);
Run Code Online (Sandbox Code Playgroud)

无法将空值添加到图像列.

我收到此错误:

操作数类型碰撞:int与图像不兼容

Mar*_*ell 6

在这里你去:当你传递一个null时,你正在传递SqlDbType.Image(通常称为7):

cmd.Parameters.AddWithValue("@Image",
(member.Image==null)
    ? (object)DBNull.Value
    : member.Image);
Run Code Online (Sandbox Code Playgroud)

如果要明确指定数据类型,请单独执行; 例如:

cmd.Parameters.AddWithValue("@Image",
(member.Image==null)
    ? (object)DBNull.Value
    : member.Image).SqlDbType = SqlDbType.Image;
Run Code Online (Sandbox Code Playgroud)