请问为什么我上传图片以二进制流的方式保存到数据库时候报错呢?新增一个公告信息时发生错误,错误信息:将截断字符串或二进制数据。

hongcha99 2012-07-26 01:50:20
下面是源码:




SqlParameter[] para = { new SqlParameter("@PID", privateAch.PID),
new SqlParameter("@ID", privateAch.ID),
new SqlParameter("@PersonID", privateAch.PersonID),
new SqlParameter("@AchName", privateAch.AchName),
new SqlParameter("@AchAddress", privateAch.AchAddress),
new SqlParameter("@CreateTime",privateAch.CreateTime),
new SqlParameter("@IsDelete",privateAch.IsDelete),
new SqlParameter("@Type",privateAch.Type),
new SqlParameter("@Bsmall",privateAch.Bsmall),
new SqlParameter("@WJL",privateAch.WJL)};
string sql = "IF EXISTS(SELECT * FROM T_PrivateAch WHERE ID=@ID) begin update T_PrivateAch set PID=@PID,PersonID=@PersonID,AchName=@AchName,AchAddress=@AchAddress,CreateTime=@CreateTime,IsDelete=@IsDelete,Type=@Type,Bsmall=@Bsmall,WJL=@WJL where ID=@ID end else begin insert into T_PrivateAch(ID,PID,PersonID,AchName,AchAddress,CreateTime,IsDelete,Type,Bsmall,WJL) values(@ID,@PID,@PersonID,@AchName,@AchAddress,@CreateTime,@IsDelete,@Type,@Bsmall,@WJL); end";
return OperatorProxy.Add("新增一个公告信息", sql, para);


这个是我的二进制流
类型为:

/// <summary>
/// 文件流
/// </summary>
public byte [] WJL
{
get { return _wjl; }
set { _wjl = value; }
}



对其进行赋值:

byte[] fileByte = null;
fileByte = ConvertFileToBytes(file);
privateAch.WJL = fileByte;



public byte[] ConvertFileToBytes(HttpPostedFile oFile)
{
Stream sm = oFile.InputStream;
byte[] bytes = new byte[oFile.ContentLength];
sm.Read(bytes, 0, oFile.ContentLength);

return bytes;
}
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangdaowu5 2012-07-26
  • 打赏
  • 举报
回复
BLOB类型
zhangdaowu5 2012-07-26
  • 打赏
  • 举报
回复
可能不是代码的问题,看看数据库表字段的类型,如果图片大的话最好用个大对象类型来存储,应该是你数据库字段类型的问题导致的,去试试祝LZ早日解决。
hongcha99 2012-07-26
  • 打赏
  • 举报
回复
我数据库字段应该设置为什么类型的啊?
天下如山 2012-07-26
  • 打赏
  • 举报
回复
话说 那个SQL 你就不能写个存储过程 那么长放在代码中不别扭?
天下如山 2012-07-26
  • 打赏
  • 举报
回复
将截断字符串或二进制数据
常见的SQL错误即你的SQL字段给的长度不够
比如:table.name nvarchar(10) 而你赋值的时候 name 大于10 当你插入数据的时候就会报这个错.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧