Windows 窗体数据绑定很适用于 BLOB 字段(即图像),但并非以默认方式来实现。如果您尝试将 Employees.Photo 列绑定到PictureBox 的 Image 属性,会引发一个异常。
Dim b5 As Bindingb5 = New Binding("Image", m_ds, "Employees.Photo")hired.DataBindings.Add(b5)
产生该异常的原因是所需的类型 (System.Drawing.Image) 和解析为 System.Byte[] 的 Photo 字段的内容之间明显不兼容。使情况更为复杂的是,Northwind 的 Employees 图片还需要进行某种处理才能真正使用。
所有这些问题最后归结为,您需要的不仅仅是到成功绑定到图像的简单转换。尽管如此,您还是可以利用 Format 事件轻松完成任务。
如果您使用 C#,就不必声明全局数据成员来捕获事件。因此,您的代码可以显示如下:
Binding b5;b5 = new Binding("Image", m_ds, "Employees.Photo");b5.Format += new ConvertEventHandler(this.PictureFormat);Photo.DataBindings.Add(b5);
事件处理程序将字节数组转换为 Bitmap 对象,该对象可以安全地