如何处理一个asp.net更新的Varbinary



在ASP.NET表单中,我有一个ListView控件,其中一列是Varbinaty(max)值。

问题是当我试图处理这个值时。

选择后:

SELECT CODICE_ARTICOLO, DESCRIZIONE, UM, FOTO, TIPO_ART FROM TBL_ARTICOLI

其中CCD_ 2是CCD_。

这是UPDATE命令:

UpdateCommand="UPDATE [TBL_ARTICOLI] SET [DESCRIZIONE] = @DESCRIZIONE, [UM] = @UM, [FOTO] = @FOTO, [TIPO_ART] = @TIPO_ART WHERE [CODICE_ARTICOLO] = @CODICE_ARTICOLO">
<UpdateParameters>
<asp:Parameter Name="DESCRIZIONE" Type="String" />
<asp:Parameter Name="UM" Type="String" />
<asp:Parameter Name="FOTO" Type="Object" />
<asp:Parameter Name="TIPO_ART" Type="String" />
<asp:Parameter Name="CODICE_ARTICOLO" Type="String" />
</UpdateParameters>

当我尝试更新项目时,我得到以下错误:

*La conversione implicita del tipo di dati da sql_variant avarbinary(max)非一致性。根据查询结果,利用率funzione CONVERT.*

在英语中,它告诉我它无法从sql_variant转换为varbynary(max),但如果我使用这样的转换:

[FOTO] = CAST(@FOTO AS VARBINARY(MAX))

我得到以下错误:

I dati di tipo字符串o二进制verrebero troncati。L’istruzioneèstata interrotta

因此字符串或二进制文件将被截断,命令被中断。

我试图将varbinary转换为十六进制字符串,但每次都会出现最后一个错误。

有人能帮我吗?

谢谢

Piercarlo

是否尝试使用SqlBinary作为类型?(不确定,也无法访问开发机器atm。)

<asp:Parameter Name="FOTO" Type="SqlBinary" />

我这里建议的是,尝试在sql server中创建一个存储过程来更新varbinary字段。在asp.net中,只需将参数传递给存储过程,对于varbinary字段,只需使用asp.net中的字符串数据类型。

现在存储过程将更新表中所需的字段。

最新更新