System.Data.SqlClient.SqlException: 操作数类型冲突: tinyint 与 image 不兼容
VB.NET 用存储过程来保存图片:
CREATE PROC P1(@ID INT, @PHOTO IMAGE)
AS
BEGIN
INSERT INTO IMAGES(ID,PHOTO)VALUES(@ID,@PHOTO)
END
dim PHOTO as byte()
dim Id as long
Dim p(2) As System.Data.SqlClient.SqlParameter
Try
p(0) = New System.Data.SqlClient.SqlParameter
With p(0)
.ParameterName = "@RETURN_VALUE"
.DbType = Data.DbType.Int32
.Direction = ParameterDirection.ReturnValue
End With
p(1) = New System.Data.SqlClient.SqlParameter
With p(1)
.ParameterName = "@ID"
.DbType = Data.DbType.Int32
.Direction = ParameterDirection.Input
.Value = Id
End With
p(2) = New System.Data.SqlClient.SqlParameter
With p(2)
.ParameterName = "@PHOTO"
.DbType = Data.DbType.Byte
.Direction = ParameterDirection.Input
.Value = PHOTO
End With
RowsEffected = SqlHelper.ExecuteNonQuery(DBApp.GetConnectionString, CommandType.StoredProcedure, "P1", p)
出错信息: System.Data.SqlClient.SqlException: 操作数类型冲突: tinyint 与 image 不兼容
解决方法:把.DbType = Data.DbType.Byte 改为 .DbType = Data.DbType.Binary 就行了,由于存储过程函数是程式自动生成,没有想到是这样错。
本文介绍了一个关于VB.NET中使用存储过程保存图片时遇到的类型冲突问题:tinyint与image不兼容。通过调整 DbType 从 Byte 到 Binary 成功解决了该问题。
1万+

被折叠的 条评论
为什么被折叠?



