新手求助 dataGridView 绑定 pictureBox问题

gton08 2009-05-24 01:59:26
先谢谢各位了
我建了一个数据库 db_csglxt
里面有张表 worker_info
字段分为 id,name,tel,addres,PS,image.
其中id为int image为image 其他为char.
我用几个textbox和前几个字段绑定了,不知道image怎么绑.

SqlConnection GridViewconn = new SqlConnection("server=.;database=db_csglxt;uid=sa;pwd=123456;");
GridViewconn.Open();
string GridViewstr = "select * from worker_info";
SqlCommand GridViewcmd = new SqlCommand(GridViewstr, GridViewconn);
SqlDataAdapter datapda = new SqlDataAdapter(GridViewcmd);
DataSet Ds = new DataSet();
Ds.Clear();
datapda.Fill(Ds, "worker_info");

dataGridView1.DataSource = Ds;
dataGridView1.DataMember = "worker_info";
dataGridView1.Columns[0].HeaderText = "ID";
dataGridView1.Columns[1].HeaderText = "姓名";
dataGridView1.Columns[2].HeaderText = "电话";
dataGridView1.Columns[3].HeaderText = "地址";
dataGridView1.Columns[4].HeaderText = "备份";
dataGridView1.Columns[4].Width = 150;
dataGridView1.Columns[5].Visible = false;
dataGridView1.Columns[0].DataPropertyName = "id";



在单击事件中

private void dataGridView1_Click(object sender, EventArgs e)
{
txt_ID.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["id"].Value.ToString();
txt_name.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["name"].Value.ToString();
txt_addres.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["addres"].Value.ToString();
txt_tel.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["tel"].Value.ToString();
txt_PS.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["PS"].Value.ToString();

//pic_image.image=... 这该怎么写
}




我想实现 当点击dataGridView里面的项,对应的textbox和pictureBox就会显示那一行的数据
我查了下资料
说这个需要用2进制流来保存和显示
不知道该怎么弄
希望各位帮帮忙
谢谢了
...全文
313 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gton08 2009-05-24
  • 打赏
  • 举报
回复
楼上可以给段代码么
谢谢了
aight 2009-05-24
  • 打赏
  • 举报
回复
在DataGridView中选择一行,根据这行数据ID去数据库找到这条记录。
然后用数据流读出图片,显示在pictureBox里面。
光宇广贞 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 gton08 的回复:]
可以实现我说的那种想法么
[/Quote]

不能。必须从数据库里面读。datagridview不支持IMAGE
gton08 2009-05-24
  • 打赏
  • 举报
回复
可以实现我说的那种想法么
悔说话的哑巴 2009-05-24
  • 打赏
  • 举报
回复
图片 好象是不能的,可以保存到数据库中读取
gton08 2009-05-24
  • 打赏
  • 举报
回复
能不能从Ds中取出来呢
光宇广贞 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyq11 的回复:]
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
MemoryStream ms = new MemoryStream((byte[])reader["img"]);
Image image = Image.FromStream(ms, true);
reader.Close();

pictureBox1.Image = image;
[/Quote]

嗯,楼上的代码是我7楼的想法。辛苦。
wuyq11 2009-05-24
  • 打赏
  • 举报
回复
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
MemoryStream ms = new MemoryStream((byte[])reader["img"]);
Image image = Image.FromStream(ms, true);
reader.Close();

pictureBox1.Image = image;

wuyq11 2009-05-24
  • 打赏
  • 举报
回复
通过dataGridView1.Rows[i].Cells[1].Value.ToString() 查询数据库,
获取二进制数据,再显示到picturebox 里
光宇广贞 2009-05-24
  • 打赏
  • 举报
回复
我觉得,你通过datagridview是得不到IMAGE的。

你直接从后台读吧……只有这样的办法。

我没记错的话,图片在SQL里面是序列化的。
gton08 2009-05-24
  • 打赏
  • 举报
回复
LS
我的意思是从dataGridView1.Columns[5]里面数据转换为图片
图片是来自数据库的
麻子Mozart 2009-05-24
  • 打赏
  • 举报
回复
private void dataGridView1_Click(object sender, EventArgs e)
{
txt_ID.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["id"].Value.ToString();
txt_name.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["name"].Value.ToString();
txt_addres.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["addres"].Value.ToString();
txt_tel.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["tel"].Value.ToString();
txt_PS.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["PS"].Value.ToString();
string fullName = "带路径的文件名";
Bitmap bm = new Bitmap(Icon.ExtractAssociatedIcon(fullName).ToBitmap());
pic_image.value = bm ;
}
sushou2009 2009-05-24
  • 打赏
  • 举报
回复
绑定~~
gton08 2009-05-24
  • 打赏
  • 举报
回复
小弟在此等高手现身...
吕津 2009-05-24
  • 打赏
  • 举报
回复

//顶。。好贴不能沉!




--这是好贴,不能沉啊!
修改一下昵称 2009-05-24
  • 打赏
  • 举报
回复
路过帮顶...ing

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧