FileStream fs = new FileStream("P1060218.jpg", FileMode.Open);
Byte[] byrte=new Byte[fs.Length ];
fs.Read(byrte,0, Convert.ToInt32(fs.Length));
fs.Close();
图片P1060218.jpg放在debug目录下面。然后把byrte存储到数据库中,这应该是往数据库中存储的图片的路径吧?

解决方案 »

  1.   


    FileStream fs = new FileStream("P1060218.jpg", FileMode.Open);//得到FileStream对象 即文件的流对象 
    Byte[] byrte=new Byte[fs.Length ];  //定义字节数组
    fs.Read(byrte,0, Convert.ToInt32(fs.Length)); 读取流 并且存入数组byrte
    fs.Close();  //关闭然后你说 出错 是哪出错呢?
      

  2.   

    从数据库中取出来的时候
     string sql = "select photo from TB_Worker where Number =1";
     DataSet ds = new DataSet();
     SqlDataAdapter sda = new SqlDataAdapter(sql, con);
     sda.Fill(ds, "TB_Worker");
     Byte[] byrte = (Byte[])ds.Tables["TB_Worker"].Rows[0].ItemArray[0];
     MemoryStream my = new MemoryStream(byrte,true);
     my.Read(byrte, 0, byrte.Length);
     Image image = Image.FromStream(my);
     pictureBox1.BackgroundImage = image;   会报参数无效的错误。帮忙看看。谢谢
      

  3.   

    从数据库中取出来的时候
     string sql = "select photo from TB_Worker where Number =1";
     DataSet ds = new DataSet();
     SqlDataAdapter sda = new SqlDataAdapter(sql, con);
     sda.Fill(ds, "TB_Worker");
     Byte[] byrte = (Byte[])ds.Tables["TB_Worker"].Rows[0].ItemArray[0];
     MemoryStream my = new MemoryStream(byrte,true);
     my.Read(byrte, 0, byrte.Length);
     Image image = Image.FromStream(my);
     pictureBox1.BackgroundImage = image;  存进去的是image字段类型的。 会报参数无效的错误。帮忙看看。谢谢
      

  4.   

    string sql = "select photo from TB_Worker where Number =1";
     DataSet ds = new DataSet();
     SqlDataAdapter sda = new SqlDataAdapter(sql, con);
     sda.Fill(ds, "TB_Worker");
     Byte[] byrte = (Byte[])ds.Tables["TB_Worker"].Rows[0].ItemArray[0];索引是否正确,table里面的数据是否正确
     MemoryStream my = new MemoryStream(byrte,true);
     my.Read(byrte, 0, byrte.Length);这一句是多余的
     Image image = Image.FromStream(my);
     pictureBox1.BackgroundImage = image; 断电调试一下看看获取到的数据是什么
      

  5.   


    SqlCommand cmd = new SqlCommand(sqlStr, conn);   //其他的你懂的~ conn连接~~
    sqlStr = "insert [表名][Photo])values(@Photo)";   //设置Sql语句fs.Read(data1, 0, (int)fs.Length);           //把照片存到数组中
    cmd.Parameters.Add("@Photo", SqlDbType.Image);   //这里选择Image类型  
    cmd.Parameters["@Photo"].Value = data1;       // 给@Photo参数赋值,把照片存到byte数组中
    cmd.ExecuteNonQuery();                                      //执行SQL语句  
    存~
      

  6.   

    MemoryStream my = new MemoryStream(byrte,true);
    Image image = Image.FromStream(my); 最后找出是my无效。为啥啊?
      

  7.   


    //存入图片
    SqlConnection conn = new SqlConnection("server=.;database=TestDB;uid=sa;pwd=1qaz@wsx#EDC");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "insert into UserHead values(@headImg,@userId)";
                cmd.Parameters.Add("@headImg", SqlDbType.Image);
                cmd.Parameters.Add("@userId", SqlDbType.VarChar);
                MemoryStream ms = new MemoryStream();
                Image.FromFile("test.jpg").Save(ms, ImageFormat.Jpeg);
                cmd.Parameters["@headImg"].Value = ms.GetBuffer();
                cmd.Parameters["@userId"].Value = "test001";
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();//取出图片
    SqlConnection conn = new SqlConnection("server=.;database=TestDB;uid=sa;pwd=1qaz@wsx#EDC");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select * from UserHead";
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                byte[] buffer = (byte[])dt.Rows[0].ItemArray[0];//注意你获取到的byte数组是否正确
                MemoryStream ms = new MemoryStream(buffer);
                pictureBox1.Image = Image.FromStream(ms);
                ms.Close();
    你参考一下
      

  8.   

    pictureBox1.Image = Image.FromStream(ms);还是ms这个参数无效,已经证实ms不是一个空的数组,真的很背催,为啥呢?