【问题标题】:How handle Varbinary an asp.net update如何处理 Varbinary 和 asp.net 更新
【发布时间】:2012-09-24 06:43:13
【问题描述】:

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

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

选择之后:

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

其中FOTOVarbinary(max)

这是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 a varbinary(max) 非同意。 Per eseguire la query, utilizzare la funzione CONVERT.*

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

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

我收到以下错误:

I dati di tipo string o binary verrebbero troncati。 L'istruzione è stata interrotta。

所以字符串或二进制会被截断命令被中断。

我尝试将 varbinary 转换为十六进制字符串,但每次都收到最后一个错误。

有人可以帮助我吗?

谢谢

皮尔卡洛

【问题讨论】:

    标签: c# asp.net sql-server


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      现在 sproc 将更新表中的必填字段。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-20
        • 1970-01-01
        相关资源
        最近更新 更多