当前位置:编程学习 > C#/ASP.NET >>

关于在picturebox中显示数据库中指定行image变量所遇到的困难!

    我新建了一个表,命名为Photo,在该表中,定义了number和photo两列数据,现在我打算在每次指定的textbox发生变化时,触发图片显示这个操作,具体的思路是:在datagridview中点击某行数据(该datagridview绑定的并非Photo表,而是另外一个表),然后在定义好的几个textbox中分别显示出工号啊,姓名啊之类的数据,现在我专门指定,每当显示工号的textbox发生变化后,触发picturebox显示命令,只是这时候我遇到了一个难点:datagridview绑定的是另外一个数据表,这个表和Photo表中的number是对应的,我现在想获取选中datagridview行的nuber列的值,然后将这个值告诉Photo表,然后显示对应这个number的Photo表中存的二进制图片,只是该怎样表示这一行呢?
    网上统一的思路都是定义一个数组,像bytePhotoData = (Byte[])(ds.Tables["Photo"].Rows[c-1]["photo"]);这种情况,但是这里的行都是无法随之变化的常量。。。跪求解决方法! --------------------编程问答-------------------- bytePhotoData = (Byte[])(ds.Tables["Photo"].Rows[c-1]["photo"])

选中那行就取那行的数据就根据对应的字段在另一表中取把photo取出来啊 --------------------编程问答--------------------
引用 1 楼  的回复:
bytePhotoData = (Byte[])(ds.Tables["Photo"].Rows[c-1]["photo"])

选中那行就取那行的数据就根据对应的字段在另一表中取把photo取出来啊

没看懂,能在具体一点吗,大侠?? --------------------编程问答-------------------- 现在我已经可以显示了,,,但是有一个问题,一旦我修改某个用户的照片后,picturebox依旧显示原来的那一张,无论修改多少次,总是显示第一次时导入的图片。。。跪求原因! --------------------编程问答-------------------- 我是楼主,附上我的代码让大家发现我的错误,我将下面这段代码放到textbox_changed里面
if (textBox9.Text.Trim() != "")
            {
                try
                {
                    byte[] imagebytes = null;

                    SqlConnection con = new SqlConnection("Server=VHEIZ0H2ZTHFJCD;uid=sa;pwd=4217633;Database=master;Integrated Security=True");

                    con.Open();

                    //string sql = "select * from Photo where where name=’+ textBox9.Text + '";

                    SqlCommand cmd = new SqlCommand("select name,photo FROM Photo where name='" + textBox9.Text + "'", con);

                    SqlDataReader read = cmd.ExecuteReader();
                    while (read.Read())
                    {
                        imagebytes = (byte[])read["photo"];  
                    }

                    read.Close();
                    con.Close();

                    MemoryStream ms = new MemoryStream(imagebytes);
                    Bitmap bmpt = new Bitmap(ms);
                    this.pictureBox2.Image = bmpt;
                    

                }
                catch
                {
                    MessageBox.Show("该对象未存储照片!");
                }
            }
这样每次textbox9发生变化时都可以触发这一事件,让picturebox2显示当前Photo表中name为textbox9的那一行的photo图像,但是无论修改多少次,picturebox总是显示第一次存进去的图片,小弟小白一个,找不出问题!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,