尝试使用SubSonic将图像存储为字节数组时出错

时间:2011-03-29 22:14:20

标签: c# sql sql-server-2005 subsonic

SubSonic是否提供存储图像的任何机制(以byte []格式转换)?
有人可以帮忙摆脱这个错误吗?

数据库:SQL server 2005
开发环境:ASP.NET(c#)
亚音速版:2.2.1.0

DB中的数据类型:图像
Subsonic生成的DAL中的数据类型:DbType.Binary
代码中的数据类型:byte [] image

声明错误:

DB.Insert().Into(DamageItems.Schema, "ImageID", "Cost","Image").Values(imageID, cost,image).Execute();

在观察窗口中查询表达式:

{INSERT INTO [dbo].[ImageItems](ImageID,Cost,Image)
 VALUES (@ins_ImageID,@ins_Cost,@ins_Image)
}

错误:

  

无法将参数值从Byte []转换为String。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

DB.Insert().Into<DamageItems>()
    .Value(DamageItems.ImageIDColumn, imageID)
    .Value(DamageItems.CostColumn, cost)
    .Value(DamageItems.ImageColumn, image)
    .Execute();

在指定TableColumn个对象时可能会正确识别类型(在编写时无法立即测试)。

如果这不起作用,我还会检查命名具有数据类型名称(image)的列是否会导致任何问题。

顺便说一下,从SQL 2005开始,image已弃用,建议改为使用varbinary(max)