gpt4 book ai didi

sql - 不允许从数据类型 nvarchar 隐式转换为 varbinary(max)

转载 作者:行者123 更新时间:2023-12-03 21:20:08 61 4
gpt4 key购买 nike

当我尝试将 DBNull.Value 插入 时,出现此异常可以为空 varbinary(max) 字段:

Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.


这是我的代码:
insertCMD.Parameters.AddWithValue("@ErrorScreenshot", SqlDbType.VarBinary).Value = DBNull.Value;
我知道 SO 上存在重复的问题,但我不像其他人那样使用任何字符串。
我怎么了?
更新:
using (var insertCMD = new SqlCommand("INSERT INTO TestplanTeststep (TeststepId,TestplanId,CreatedAt,ErrorText,ErrorScreenshot,TestState) VALUES (@TeststepId, @TestplanId,@CreatedAt,@ErrorText,@ErrorScreenshot,@TestState)", con))
{
var p1 = insertCMD.Parameters.Add("@TeststepId", SqlDbType.Int);
var p2 = insertCMD.Parameters.Add("@CreatedAt", SqlDbType.DateTime);
insertCMD.Parameters.AddWithValue("@TestplanId", testplan.Id);
insertCMD.Parameters.AddWithValue("@ErrorText", (object) DBNull.Value);
insertCMD.Parameters.AddWithValue("@ErrorScreenshot", (object) DBNull.Value);
insertCMD.Parameters.AddWithValue("@TestState", (int)Teststep.TeststepTestState.Untested);

foreach (Teststep step in teststeps)
{
p1.Value = step.Id;
p2.Value = step.CreatedAt;
insertCMD.ExecuteNonQuery();
}
}

最佳答案

我在插入时遇到了同样的问题 DBNull.Value对于 Varbinary(Max)柱子。谷歌搜索后,我找到了一个也可以帮助你的解决方案:

您需要设置大小 -1 这意味着 Max添加 sql 参数时 varbinary 列的长度:

this.cmd.Parameters.Add("@Photo", SqlDbType.VarBinary, -1).Value = DBNull.Value;

所以在你的情况下:
insertCMD.Parameters.Add("@ErrorScreenshot", SqlDbType.VarBinary,-1).Value = DBNull.Value;

关于sql - 不允许从数据类型 nvarchar 隐式转换为 varbinary(max),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411854/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com