INSERT * INTO TblFile([FILEID], [FILEDATA])
VALUES('" + Guid.newGuid + "', CONVERT(VARBINARY, '" + Filebytes + "'));
截断在此处发生,您应该像这样将其强制转换为varbinary(MAX):
INSERT * INTO TblFile([FILEID], [FILEDATA])
VALUES('" + Guid.newGuid + "', CONVERT(VARBINARY(MAX), '" + Filebytes + "'));
此处描述了此行为:二进制和varbinary(Transact-SQL)
在数据定义或变量声明语句 ,默认长度为1。 。
与其通过Query字符串传递数据,不如使用sql参数,因为否则将传递’“ + Filebytes +”’。
sqlParameter FileDataUploadParameter = Cmd.Parameters.Add("@FileData", sqlDbType.VarBinary);
FileDataUploadParameter.Value = FileToUpload;