0

ASP.NET フォームには、列の 1 つが値である ListView コントロールがありVarbinaty(max)ます。

問題は、この値を処理しようとするときです。

選択に続いて:

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

はどこFOTOですかVarbinary(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 Implicta del Tipo di dati da sql_variant a varbinary(max) non è constita. クエリごとに、関数 CONVERT を使用します。*

sql_variant英語では、 からに変換できないと言っていますがvarbynary(max)、そのような変換を使用している場合:

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

次のエラーが表示されます。

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

そのため、文字列またはバイナリが切り捨てられ、コマンドが中断されました。

16 進文字列を変換しようとしましたvarbinaryが、毎回最後のエラーが発生します。

誰かが私を助けることができますか?

ありがとうございました

ピエルカルロ

4

2 に答える 2

2

タイプとして SqlBinary を使用してみますか? (確かではありません。また、開発マシンの atm にはアクセスできません。)

<asp:Parameter Name="FOTO" Type="SqlBinary" />
于 2012-09-24T07:04:48.860 に答える
0

ここで提案するのは、SQLサーバーでsprocを作成して、varbinaryフィールドを更新することです。asp.netからパラメーターをsprocに渡すだけで、varbinaryフィールドにはasp.netの文字列データ型を使用します。つまり、値を割り当てます。文字列データ型に変換し、それをsprocに渡します。

これで、sprocはテーブルの必須フィールドを更新します。

于 2012-09-24T07:11:34.040 に答える