none
C#怎样读MDB里"OLE 对象"的值? RRS feed

  • 问题

  •     Re.Read();
                byte[] by = (byte[])Re.GetValue(Re.GetOrdinal("数据"));
                MemoryStream m = new MemoryStream(by);
                richTextBox1.LoadFile(m, RichTextBoxStreamType.RichText);

                //"OLE 对象"为null时,这样读会出现 无法将类型为“System.DBNull”的对象强制转换为类型“System.Byte[]”的错误。
    2010年3月11日 15:12

答案

全部回复

  • 加判断咯, if(Re.IsDbNull("数据")) {}

    霸王
    2010年3月11日 15:15
  •     
        Re.Read();
                if (Re.IsDBNull(Re.GetOrdinal("数据")) == false)
                {
                    byte[] by = (byte[])Re.GetValue(Re.GetOrdinal("数据"));
                    MemoryStream m = new MemoryStream(by);
                    richTextBox1.LoadFile(m, RichTextBoxStreamType.RichText);
                }

    //已经解决,谢谢霸王
    2010年3月11日 15:24
  • 能解决就行了,虽然这个解决方式有点奇怪,Re.IsDBNull() 参数是字段号或者字段名,返回值是bool,理论上不需要 == false,不过我有看到过这种编程规范,也是可以的。

    霸王
    2010年3月11日 15:32