本帖最后由 soesa 于 2010-12-21 19:52:03 编辑

解决方案 »

  1.   

    插入感觉就不对。为什么不用SqlParameter?
      

  2.   

    byte[] b= (byte[])dataReader[0];
      if (b.Length>0)
      {
      MemoryStream stream = new MemoryStream(b, true);
      stream.Write(b, 0, b.Length);
      pictureBox1.Image = new Bitmap(stream);
      stream.Close();
      }
    检查字节长度,保存时是否正确
      

  3.   


            void insertSQL(byte[] Image)
            {
                string ConStr = "server=(local);user id=sa;pwd=sa;database=test";
                SqlConnection conn = new SqlConnection(ConStr);            string strSql = "Insert into piclist(pic) values(@pic)";
                SqlCommand cmd = new SqlCommand(strSql, conn);
                cmd.Parameters.Add("@pic", SqlDbType.Image);
                cmd.Parameters["@pic"].Value = Image;            conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
                       }   private void Button_Click(object sender, RoutedEventArgs e)
            {
                FileStream fs = new FileStream(@"E:\20.jpg", FileMode.Open);
                int le=Convert.ToInt32(fs.Length);
                byte[] ib = new byte[le];
                fs.Read(ib,0,le);
                fs.Close();
                insertSQL(ib);
               
      
            }
    这是插入
      

  4.   

    void SelectSQL()
            {
                string ConnStr = "server=(local);user id=sa;pwd=sa;database=test";
                string strSql = "select * from piclist";
                SqlConnection conn = new SqlConnection(ConnStr);
                conn.Open();            SqlCommand cmd = new SqlCommand(strSql, conn);
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    byte[] b = (Byte[])reader["pic"];       
                   FileStream fs = new FileStream(@"E:\123.jpg", FileMode.CreateNew);
                   BinaryWriter bw = new BinaryWriter(fs);
                   bw.Write(b, 0, b.Length);            }
                reader.Close();
                conn.Close();                 
            }
    这是读取
      

  5.   


    byte[] b = (Byte[])reader["pic"];   
    你图片框支持赋值Byte吗?
    如果支持图片框是个控件吧,请问是什么控件?
    b直接赋就行