rt~~~高手给解释解释。目前数据库能连接上。整形的数也能读取和存储。可是二进制的是怎么存储和读取的呢?

解决方案 »

  1.   

    //存入数据库
    private void button1_Click(object sender, EventArgs e)
            {
                if (pictureBox1.Image != null)
                {
                    //创建流
                    MemoryStream ms = new MemoryStream();
                    //将图片以指定格式保存在流中
                    pictureBox1.Image.Save(ms, ImageFormat.Png);
                    //将流转换成字节数组
                    byte[] bt = ms.ToArray();
                    ms.Close();                string sql = "insert into t(img) values(@img)";
                    SqlParameter[] pa = new SqlParameter[]{
                        new SqlParameter("@img", SqlDbType.Image)
                    };
                    pa[0].Value = bt;
                    db.ExcuteNonQuery(sql, CommandType.Text, pa);
                }
            }
    //读取二进制文件
     private void button2_Click(object sender, EventArgs e)
            {
                string sql = "select img from t where id=1";
                DataSet ds = db.ExcuteDataSet(sql, CommandType.Text);
                if (ds != null && ds.Tables.Count > 0)
                {
                    byte[] bt = (byte[])ds.Tables[0].Rows[0]["img"];                //根据字节数组创建流对象
                    MemoryStream ms = new MemoryStream(bt, 0, bt.Length);
                    //从流中加载图片对象
                    Image img = Image.FromStream(ms);
                    pictureBox2.Image = img;
                }
            }基本二进制读取都是这样的  图片在数据库中就是以二进制格式存储的