首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

SqlParameter("@Photo"DBNull.Value)储存到数据库Image提示nvarchar与image数据类型不匹配?

2013-03-19 
SqlParameter(@Photo,DBNull.Value)存储到数据库Image提示nvarchar与image数据类型不匹配??本帖最后由 h

SqlParameter("@Photo",DBNull.Value)存储到数据库Image提示nvarchar与image数据类型不匹配??
本帖最后由 hhsmelody 于 2013-03-14 15:11:58 编辑 SqlParameter("@Photo",DBNull.Value)存储到数据库Image提示nvarchar与image数据类型不匹配??
Employee()为Model,即Photo为表Employee中的一个字段
byte[] photo{get;set;}
Employee emp=new Employee();
if(photo==null)
{
return DBNull.Value;
}
else
{
return photo;
}
emp.Photo=photo;
ExecuteNonQuery("insert into Employee(Photo) values(@Photo)",new SqlParameter("@Photo",emp.Photo));
当执行插入语句,emp.Photo的值为DBNull.Value时提示:操作数类型冲突: nvarchar 与 image 不兼容;
emp.Photo的值不为空时,成功,求解?????????
数据库中Photo所对应字段为Image类型,C#中定义photo为byte[]; C# SqlParameter DBNull Image byte
[解决办法]

SqlParameter param=new SqlParameter("@Photo")",emp.Photo==DBNull.Value ?  null:emp.Photo);
param.SqlDbType = SqlDbType.Image;

ExecuteNonQuery("insert into Employee(Photo) values(@Photo)",param);
[解决办法]
photo为byte[] 为null的时候,photo= new byte[0]

这样的话,往数据库保存的时候,就不会有异常
[解决办法]
SqlParameter("@Photo",SqlDbType.Image);什么都不要写就是null

热点排行