2

我正在为 Windows Mobile 6.5 设备编程。

我正在使用 SQL Server Compact Edition,并尝试将字节流写入数据库。列类型是image(我理解它可以处理超过 8000 个字节),但是我得到了异常:

InvalidOperationException
@signature : 字节数组截断到长度为 8000。

知道为什么会这样吗?

string sql = @"INSERT INTO E_CONS_SIGNATURE (CONS_NO, SIGNATURE, SIGNATURE_FORMAT, SIGNATURE_DATE)"
            + " VALUES(@consNo, @signature, @format, @date)";

SqlCeCommand cmd = new SqlCeCommand(sql, conn);
cmd.Parameters.AddWithValue("@consNo", txtConsignment.Text);
cmd.Parameters.AddWithValue("@signature", ms.ToArray());
cmd.Parameters.AddWithValue("@format", "BMP");
cmd.Parameters.AddWithValue("@date", new DateTime());

bool success = cmd.ExecuteNonQuery() > 0;

目前,存储在文件系统上不是一种选择。

4

1 回答 1

0

关于错误本身,这一行有问题

cmd.Parameters.AddWithValue("@signature", ms.ToArray());

您需要将图像转换为 MemoryStream 对象。

检查以下网站以帮助您。

将图像保存到 SQL CE

将图像存储在 SQL Server CE 数据库中

问候

于 2012-07-23T04:45:34.527 回答