winform 下,gridview 如何绑定DataGridViewImageColumn
FileStream fs = new FileStream(textBox3.Text, FileMode.Open, FileAccess.Read);
BinaryReader br =new BinaryReader(fs);
byte[] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
string upimage="insert into img (图片,ID) values( '"+photo+"','x00003')";
MessageBox.Show(upimage);
additemobc.CommandText = upimage;
additemobc.Connection = objConnection;
additemobc.ExecuteNonQuery();
上面是我存到access图片的代码,问题是,为什么我绑定不到DataGridViewImageColumn列?我的DataGridViewImageColumn列是根据数据库中的字段自己生成的
DataGridViewImageColumn daoimage=new DataGridViewImageColumn();
daoimage.HeaderText=daojl.Tables[0].Rows[i][1].ToString();
daoimage.DataPropertyName = daojl.Tables[0].Rows[i][1].ToString();
dataGridView1.Columns.Add(daoimage);
然后在绑定另外的表,其他列都正常,能有数据,但是,不显示图像,哪里弄错了?用循环加图像的话,如果图片多会很慢,不是很好,
FileStream fs = new FileStream(textBox3.Text, FileMode.Open, FileAccess.Read);
BinaryReader br =new BinaryReader(fs);
byte[] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
string upimage="insert into img (图片,ID) values( '"+photo+"','x00003')";
MessageBox.Show(upimage);
additemobc.CommandText = upimage;
additemobc.Connection = objConnection;
additemobc.ExecuteNonQuery();
上面是我存到access图片的代码,问题是,为什么我绑定不到DataGridViewImageColumn列?我的DataGridViewImageColumn列是根据数据库中的字段自己生成的
DataGridViewImageColumn daoimage=new DataGridViewImageColumn();
daoimage.HeaderText=daojl.Tables[0].Rows[i][1].ToString();
daoimage.DataPropertyName = daojl.Tables[0].Rows[i][1].ToString();
dataGridView1.Columns.Add(daoimage);
然后在绑定另外的表,其他列都正常,能有数据,但是,不显示图像,哪里弄错了?用循环加图像的话,如果图片多会很慢,不是很好,
解决方案 »
- 【急!急!急!关于XML文件读取】大家帮忙看看读取XML文件时这段代码是个干什么用的啊??
- dataGridView1没办法进入编辑状态
- 为什么两次都走IsPostBack
- 高分求解 如何获取DataGridViewButtonColumn 中的Click事件
- 关于继承了基类的组件类,设计页面的控件是如何排列的呢?
- 如何调整TreeView控件Nodes显示的间距
- datagridview中datagridviewcheckcolumn的用法
- 在C#中使用struct出现问题
- API函数CreateFile()!!
- 请问,如何去掉string 类型变量中的空格(c#),肯定给分!!!
- 窗体间传值问题
- lock 语句怎么同时锁定两个变量?
DataPropertyName这个属性是设置绑定数据库列名称的
insert into img (图片,ID) values( 'System.Byte[]','x00003')
在实体类get set方法里写就行
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, o); return ms.ToArray();
} object DeSerialize(byte[] data)
{
MemoryStream ms = new MemoryStream(data);
BinaryFormatter bf = new BinaryFormatter();
return bf.Deserialize(ms);
} public Image ModuleImage //实体类属性
{
get
{
if (_ImageBytes == null)
return null;
else
return (Image)DeSerialize(_ImageBytes);
}
set
{
if (value == null)
this._ImageBytes = null;
else
this._ImageBytes = Serialize(value);
}
}
<HeaderStyle BackColor="#FFFDE3" Width="120px" Height="25px"/>
<ItemTemplate>
<asp:Image ID="imgGameImgPath" runat="server" Visible="false" ImageUrl='<%#GetURL(Eval("GameFilePath")) %>' />
</ItemTemplate>
<ItemStyle CssClass="word_12_bla_chi" />
</asp:TemplateField>
你这样能把图形保存到数据库? 结果是这个把.
insert into img (图片,ID) values( 'System.Byte[]','x00003') 存到access里面显示的是长2进制数据,应该存进去了吧
byte[] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
string upimage="insert into img (图片,ID) values( '"+photo+"','x00003')";
没有区别吧
br.Close();
fs.Close();
string upimage="insert into img (图片,ID) values( '"+photo+"','x00003')";
应该是保存不进去的.
你的长2进数应该是 System.Byte[]字符串的2进数
DataGridViewImageColumn iconColumn = new DataGridViewImageColumn ();
iconColumn.Image = treeIcon.ToBitmap();
iconColumn.Name = "a";
iconColumn.HeaderText = "";
dataGridView1.Columns.Insert(2, iconColumn);
参考