首先 DataGridView的数据源我不是从数据库读取的
我是自定义Table 给的数据库源 private DataTable CreateTab()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("dataID"));
dt.Columns.Add(new DataColumn("dataName"));
dt.Columns.Add(new DataColumn("dataState"));
//这是获取需要存放在DataTable中的图片
FileStream imgStream = new FileStream(Application.StartupPath + "\\img\\ok.png",FileMode.Open, FileAccess.Read); byte[] imgByte = new byte[imgStream.Length];
imgStream.Read(imgByte, 0, imgByte.Length); for (int i = 1; i < 20; i++)
{
DataRow drs;
drs = dt.NewRow();
drs[0] = i;
drs[1] = "设备编号:" + i.ToString(); //这要报错 求解决方法
drs[2] = imgByte; dt.Rows.Add(drs); }
return dt;
}这个是数据源
DataGridView 显示图片的那一列我设置成是的 DataGridViewImageColumn属性 若设置成其他的要不会报错,但显示的是类型 //报错的类容是 无法从 System.string 到Systen.Drawing.Image 转换无效。。求达人解决
我是自定义Table 给的数据库源 private DataTable CreateTab()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("dataID"));
dt.Columns.Add(new DataColumn("dataName"));
dt.Columns.Add(new DataColumn("dataState"));
//这是获取需要存放在DataTable中的图片
FileStream imgStream = new FileStream(Application.StartupPath + "\\img\\ok.png",FileMode.Open, FileAccess.Read); byte[] imgByte = new byte[imgStream.Length];
imgStream.Read(imgByte, 0, imgByte.Length); for (int i = 1; i < 20; i++)
{
DataRow drs;
drs = dt.NewRow();
drs[0] = i;
drs[1] = "设备编号:" + i.ToString(); //这要报错 求解决方法
drs[2] = imgByte; dt.Rows.Add(drs); }
return dt;
}这个是数据源
DataGridView 显示图片的那一列我设置成是的 DataGridViewImageColumn属性 若设置成其他的要不会报错,但显示的是类型 //报错的类容是 无法从 System.string 到Systen.Drawing.Image 转换无效。。求达人解决
Boolean Byte Char DateTime Decimal Double Int16 Int32 Int64 SByte Single String TimeSpan UInt16 U Int32 UInt64 ,所以你在这里把图片这种个是赋给制定的cell中,肯定会报错的。