0

我有以下代码来上传图片:

FileUpload uniformItemImageFileUpload = uniformItemsGrid.FooterRow.FindControl("UniformImageInsert") as FileUpload;
byte[] itemBytes = uniformItemImageFileUpload.FileBytes;

并将以下内容绑定到数据库:

OracleParameter itemImageParameter = new OracleParameter("itemImage", OracleDbType.Blob, 4000);
itemImageParameter.Value = itemImageBytes;
oraCommand.Parameters.Add(itemImageParameter);

我有一个问题,当通过这种机制上传图像时,它不会存储该图像的所有二进制数据,但如果它是大于 4kb 的图像,它只会存储部分数据。但是,问题不在于存储,因为 4000 大小的 blob 可以容纳更大的文件,事实上,如果我直接通过 SQL Navigator 上传它,它可以完全存储它,但是,当尝试上传相同的文件时没有问题图像通过代码,它不会存储所有它。

有没有人遇到过这个问题?如何修复?

4

1 回答 1

5

需要给OracleParameter指定Blob的大小,即

OracleParameter itemImageParameter = new OracleParameter("itemImage", OracleDbType.Blob, itemBytes.Length);
itemImageParameter.Value = itemImageBytes;
oraCommand.Parameters.Add(itemImageParameter);

希望这会奏效:)

于 2012-07-16T14:41:44.537 回答