发现几个ACCESS查询时的问题

今天再用 ACCESS 查询的时候发现几个不知道算不算 BUG 的问题,就是在将 PictureBox 的图片转换为二进制数据之后存储的过程中居然跟参数添加的位置有关系,位置会影响到参数加入的正确性。

贴上一小段代码加以说明

cmd.Parameters.Add("@start", OleDbType.DBDate).Value = start.Date;
cmd.Parameters.Add("@endof", OleDbType.DBDate).Value = end.Date;
cmd.Parameters.Add("@charge", OleDbType.Integer).Value = charge;
cmd.Parameters.Add("@guarantee", OleDbType.Double).Value = guarantee;
cmd.Parameters.Add("@water", OleDbType.Integer).Value = water;
cmd.Parameters.Add("@electricity", OleDbType.Integer).Value = electricity;
cmd.Parameters.Add("@modifyTime", OleDbType.DBDate).Value = modifyTime.Date;
cmd.Parameters.Add("@recordId", OleDbType.Integer).Value = recordId;

if (roomPic != null)
{
    cmd.Parameters.Add("@Pic", OleDbType.Binary, roomPic.Length).Value = roomPic;
}

注意看最后的一个 if 判断,我之所以加到最后就是因为如果放到中间的话会导致“标准表达式中数据类型不匹配”的错误,这个害我检查了半天的程序错误,我觉得可以算上一个 BUG 了,放的位置不一定非要在最后,这个很难说,只能慢慢测试。

几个 SQL 命令检查、测试了下来又耽搁了我大半天时间,明天是原定的交货日期了,只好跟客户说延迟 1 天了,哎!