在winform中,datagridview显示不出图片来

string M_str_sql = "select image from tb_pictures";
string M_str_table = "tb_pictures";
DataSet myds = boperate.getds(M_str_sql, M_str_table);
DataGridViewImageColumn column = new DataGridViewImageColumn();
dataGridView1.Columns.Add(column);
column.HeaderText = "图片";
column.Image= System.Drawing.Image.FromFile (myds.Tables ["tb_pictures"] . Rows[0]["image"].ToString());
数据库image那一列是图片的地址,运行后,显示的是红叉子,求高手解答

你的图片是图标吗?如果是,应该用column.Icon来设置。
这里的column.Icon和column.Image都是当各行的该列为空(null)时显示的图片。
真正要显示数据库中的图片应该使用如下方法赋值。

DataGridView1["Image", 0].Value = new Bitmap("C:\\top.gif");
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-11
System.Drawing.Image.FromFile (myds.Tables ["tb_pictures"] . Rows[0]["image"].ToString());
这句话,myds.Tables ["tb_pictures"] . Rows[0]["image"].ToString()是文件名吗?
如果是二进制数据的话,请改用下面方法FromStream((byte[])myds.Tables ["tb_pictures"] . Rows[0]["image"])
第2个回答  2011-07-11
你在数据库到的是二进制,你要绑定图片,先把二进制转换成图片,不信可以自己调试,输出的是system.byte[],自己多调试就知道问题出在哪里了?
第3个回答  2011-07-10
估计是图片地址错误!追问

不可能啊,我把这个路径放到一个picturebox里测试,能显示出图片来

追答

Image myImage = Image.FromFile("Computer.jpg"); //创建图形,相对路径
Graphics myGraphics = this.CreateGraphics();//创建Graphics对象
myGraphics.DrawImage(myImage, 50, 20);//编制图形

相似回答