C# 如何在varbinary中存储16000字节
我有一个允许电子签名的web应用程序。当我得到签名时,它是精确的大小(大部分大于8000字节),但当它进入数据库时,它总是被截断为8000字节。 当我检查varbinary时,它说“如果字节数组大于8000字节,隐式转换将失败。使用大于8000字节的字节数组时,显式设置对象。' 在下面的场景中,我如何做到这一点?我不想丢失任何字节C# 如何在varbinary中存储16000字节,c#,sql-server,C#,Sql Server,我有一个允许电子签名的web应用程序。当我得到签名时,它是精确的大小(大部分大于8000字节),但当它进入数据库时,它总是被截断为8000字节。 当我检查varbinary时,它说“如果字节数组大于8000字节,隐式转换将失败。使用大于8000字节的字节数组时,显式设置对象。' 在下面的场景中,我如何做到这一点?我不想丢失任何字节 public DataSet InsertInformation(FormInformation info) { SqlCommand command = n
public DataSet InsertInformation(FormInformation info)
{
SqlCommand command = new SqlCommand("SPInsertSig");
command.Parameters.Add("@Signature", SqlDbType.VarBinary).Value = info.Signature;
DataSet resultDataSet;
resultDataSet = ExecuteStoreProcedure(command);
return resultDataSet;
}
当我在谷歌上搜索时,有人提到尝试这种方法,但它也不起作用,并将值截断为8000字节
SqlParameter param = command.Parameters.Add("@Signature", SqlDbType.VarBinary);
param.Value = info.Signature;
param.Size = -1;
任何建议都将不胜感激。
谢谢
更新
将其更改为Int32.MaxValue后,它工作正常。尝试使用新的SQLPareter命令:
SqlParameter(String, SqlDbType, Int32)
或者在您的情况下:
command.Parameters.Add(new SqlParameter("@Signature", SqlDbType.VarBinary, -1)).Value = info.Signature;
尝试使用新的SqlParemeter命令:
SqlParameter(String, SqlDbType, Int32)
或者在您的情况下:
command.Parameters.Add(new SqlParameter("@Signature", SqlDbType.VarBinary, -1)).Value = info.Signature;
尝试使用新的SqlParemeter命令:
SqlParameter(String, SqlDbType, Int32)
或者在您的情况下:
command.Parameters.Add(new SqlParameter("@Signature", SqlDbType.VarBinary, -1)).Value = info.Signature;
尝试使用新的SqlParemeter命令:
SqlParameter(String, SqlDbType, Int32)
或者在您的情况下:
command.Parameters.Add(new SqlParameter("@Signature", SqlDbType.VarBinary, -1)).Value = info.Signature;
由于问题缺乏深度,没有人能给你一个确切的答案,因此你真的需要按照清单来确定问题。在我看来,这是你应该检查的顺序;在我的经验中,最常见的原因是最不常见的。由于您看到的信息,我打赌4是罪魁祸首
varbinary(max)
.size=-1
)CAST
或CONVERT
调用指定VARBINARY
,但大小不正确CAST
或CONVERT
调用指定VARBINARY
,但在存储过程中大小不正确由于问题缺乏深度,没有人能给你一个确切的答案,因此你真的需要按照清单来确定问题。在我看来,这是你应该检查的顺序;在我的经验中,最常见的原因是最不常见的。由于您看到的信息,我打赌4是罪魁祸首
varbinary(max)
.size=-1
)CAST
或CONVERT
调用指定VARBINARY
,但大小不正确CAST
或CONVERT
调用指定VARBINARY
,但在存储过程中大小不正确由于问题缺乏深度,没有人能给你一个确切的答案,因此你真的需要按照清单来确定问题。在我看来,这是你应该检查的顺序;在我的经验中,最常见的原因是最不常见的。由于您看到的信息,我打赌4是罪魁祸首
varbinary(max)
.size=-1
)CAST
或CONVERT
调用指定VARBINARY
,但大小不正确CAST
或CONVERT
调用指定VARBINARY
,但在存储过程中大小不正确由于问题缺乏深度,没有人能给你一个确切的答案,因此你真的需要按照清单来确定问题。在我看来,这是你应该检查的顺序;在我的经验中,最常见的原因是最不常见的。由于您看到的信息,我打赌4是罪魁祸首
varbinary(max)
.size=-1
)CAST
或CONVERT
调用指定VARBINARY
,但大小不正确