请问我如何使用C#将数据库中的Image属性列存取的图像放到PictureBox中,前提是使用SqlDataReader,下面是我写的部分代码,请各位专家指教:谢谢private void button3_Click(object sender, System.EventArgs e)
{
if(this.sqlCommand_Select.Connection.State==ConnectionState.Closed)
{
this.sqlCommand_Select.Connection.Open();
}
this.myReader=this.sqlCommand_Select.ExecuteReader();
myReader.Read();//假设只有一行,就不用while循环了
this.ShowDBImage();
}
//ShowDBImage方法如下:
private void ShowDBImage()
{
try
{
byte[] bytes=(byte[])this.myReader.GetValue(0);
MemoryStream memStream=new MemoryStream(bytes);
Bitmap MyImage = new Bitmap(memStream);
this.pictureBox1.Image= MyImage;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
this.pictureBox1.Image=null;
}
}
问题关键是,byte[] bytes=(byte[])this.myReader.GetValue(0);这句,这列的数据类型是image,但SqlDataReader没有GetImage()方法,我就使用了GetValue(0);但显然GetValue()方法不能正确将图片提取出来。
谢谢大家帮我解决这个问题,我已经郁闷了很多星期了。
{
if(this.sqlCommand_Select.Connection.State==ConnectionState.Closed)
{
this.sqlCommand_Select.Connection.Open();
}
this.myReader=this.sqlCommand_Select.ExecuteReader();
myReader.Read();//假设只有一行,就不用while循环了
this.ShowDBImage();
}
//ShowDBImage方法如下:
private void ShowDBImage()
{
try
{
byte[] bytes=(byte[])this.myReader.GetValue(0);
MemoryStream memStream=new MemoryStream(bytes);
Bitmap MyImage = new Bitmap(memStream);
this.pictureBox1.Image= MyImage;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
this.pictureBox1.Image=null;
}
}
问题关键是,byte[] bytes=(byte[])this.myReader.GetValue(0);这句,这列的数据类型是image,但SqlDataReader没有GetImage()方法,我就使用了GetValue(0);但显然GetValue()方法不能正确将图片提取出来。
谢谢大家帮我解决这个问题,我已经郁闷了很多星期了。
解决方案 »
- 有谁用过三维LIST
- 如何修改c#中 button控件的形状
- %%^^^^^^^^关于数据库事务问题^^^^^^^^^%%
- 在与SQL server建立连接时出现与网络相关的或特定于实例的错误,未找到或无法访问服务器。
- .net运行出现“算术运算中发生溢出或下溢”报错,有人知道如何解决吗
- 请问如何把SaveFileDialog的窗口显示在最上面,其它窗口失去焦点?
- 两个小问题
- 得到正解立即结贴 得到正解立即结贴 得到正解立即结贴 得到正解立即结贴
- [50分][原创][着急][谢谢][进来看看][帮忙顶顶][收获很多]如何取出一张图片的指定位置呢???
- 为什么一个表不能被多次使用
- 初级问题,派生类具有基类的所有成员吗?那基类的private成员呢?
- C#打印网页问题
myParm.Value=(object)this.bytes;
this.sqlCommand1.ExecuteNonQuery();
数据库中的触发器是这样写的
CREATE PROCEDURE p
@p1 image
AS
INSERT t VALUES (@p)
GO
我是按照SQL SERVER 帮助文档上拷贝的这段触发器。