我是做死的。假设一副图片的大小最大为 600000字节
1、如果图片小于600000字节字节,fs.Read(img, 0, 600000)效率比较低吧。
byte[] img=new byte[600000];
            FileStream fs = new FileStream(this.tbImgPath.Text, FileMode.Open, FileAccess.Read);
            fs.Read(img, 0, 600000);
            string sqlImg = string.Format("update t_device_data set DEVICEIMG=:fs  where DEVICEID='{0}'", model.DEVICEID);
            Maticsoft.DBUtility.DbHelperOra.ExecuteSqlInsertImg(sqlImg, img);
请高手赐教怎样做成活的啊。谢谢。

解决方案 »

  1.   

    byte[] raw = File.ReadAllBytes( ... );
      

  2.   

    楼上的方法简单。也可以
    FileStream fs = new FileStream(this.tbImgPath.Text, FileMode.Open, FileAccess.Read); 
    byte[] img = new byte[fs.Length]//fs.Length就是这个文件的长度
    fs.Read(img,0,img.Length);
      

  3.   

    真是怪了,file.Length这个行不行咄
      

  4.   

    谢谢大家的回答。还有一个问题。
    我从数据库中取图片的时候为什么比例变大呢?
    我是这样子取 的啊
    #region 从数据库中取图片
                string sql = string.Format("select DEVICEIMG from T_DEVICE_DATA where DEVICEID='{0}'", ODMS.Device.frmDeviceDetail.deviceID);
                System.Data.OracleClient.OracleDataReader reader = Maticsoft.DBUtility.DbHelperOra.ExecuteReader(sql);
                reader.Read();
                if (!reader.IsDBNull(0))
                {
                    MemoryStream buf = new MemoryStream((byte[])reader[0]);
                    Image image = Image.FromStream(buf, true);
                    this.pbDeviceImg.Image = image;
                }
                #endregion
      

  5.   


    学习啊
    我上传都没试过控制图片大小的。。
    顺便广告下
    长沙net技术交流群:83277516
    长沙net技术交流论坛:http://www.jaylee001.cn
      

  6.   

    取出来用div框一下,比例应该可以缩放