Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在varbinary(max)中插入空值,出现错误:不允许从数据类型nvarchar隐式转换为varbinary(max)_C# - Fatal编程技术网

C# 无法在varbinary(max)中插入空值,出现错误:不允许从数据类型nvarchar隐式转换为varbinary(max)

C# 无法在varbinary(max)中插入空值,出现错误:不允许从数据类型nvarchar隐式转换为varbinary(max),c#,C#,我想在varbinary(max)中插入null值,但它返回了一个错误 我正在尝试下面的代码来保存照片,当我附加照片时,它保存下来没有任何问题。当没有照片时,它会抛出一个错误 不支持从数据类型nvarchar到varbinary(max)的隐式转换 允许。使用CONVERT函数运行此查询 这是由AddWithValue调用引起的一个细微错误。(和)。 当AddWithValue能够正确识别参数的类型时,您没有问题,但是当您将参数值设置为DBNull.value时,该方法尝试将其转换为字符串,您会

我想在varbinary(max)中插入null值,但它返回了一个错误

我正在尝试下面的代码来保存照片,当我附加照片时,它保存下来没有任何问题。当没有照片时,它会抛出一个错误

不支持从数据类型nvarchar到varbinary(max)的隐式转换 允许。使用CONVERT函数运行此查询


这是由AddWithValue调用引起的一个细微错误。(和)。
当AddWithValue能够正确识别参数的类型时,您没有问题,但是当您将参数值设置为DBNull.value时,该方法尝试将其转换为字符串,您会收到错误,因为数据字段需要VARBINARY。
但是,在构建参数列表时,您可以准确地指定所需的类型,因此只需将参数传递给Add方法,而无需使用AddWithValue构建另一个参数

foreach (SqlParameter Parameter in _parameters)
{
    myCommand.Parameters.Add(Parameter);
}
您甚至可以使用

myCommand.Parameters.AddRange(_parameters.ToArray());
另外,正如我在其他评论中指出的,INSERT命令应该写成

INSERT INTO (pat_id,photo) VALUES (@pat_id ,@photo)

尝试更改myCommand.parameters.add(Parameter)中向命令添加参数的行;另外,INSERT命令错误。将参数用于字段名和值。您应该将INSERT写入(pat_id,photo)值(@pat_id,@photo)可能与我在用myCommand.Parameters.Add(Parameter)替换时遇到的此错误重复;SqlParameter已包含在另一个SqlParameterCollection中。
INSERT INTO (pat_id,photo) VALUES (@pat_id ,@photo)