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

存储过程中为什么总是在报“将截断字符串或二进制数据”错误
第一张图是我在SQL Server Management Studio中设计的表



第二图是我的报错内容。老是提示“将截断字符串或二进制数据。”


附上我写的存储过程
CREATE PROCEDURE [dbo].[Uploadfile]
@fileName nchar(50),
@fileName_old nchar(50),
@filePath ntext,
@fileSize int,
@fileContent varbinary(MAX),
@fileType nchar(10)
AS
INSERT files(fileName, fileName_old, filePath, fileSize, fileContent, fileType)
VALUES(@fileName, @fileName_old, @filePath, @fileSize, @fileContent, @fileType)


请问大神是哪里出错了?

------解决方案--------------------
在设置数据库参数时
command.Parameters.Add("@fileContent",SqlDbType.VarBinary,-1).Value=*****;
不设置参数长度时,会给一个默认的长度。

------解决方案--------------------
不够长,存不进,查看你写入的数据长度,数据库字段加长
------解决方案--------------------
varbinary 最大只能存8k,而且我记得sqlserver每行数据长度也有限制

你最好用image
------解决方案--------------------
这个意思是数据太长放不进字段中,该仔细检查检查啊。
------解决方案--------------------
文件名字、文件类型是不是有数据超出界定了,把字段长度设大些看看