ADO.Net寫入&讀取圖片文件

 

使用帶參數的sql語句實現添加功能

        public static void InsertPic(string filename)
        {
            string sql = "insert into ImgTest(Name,Sculpture) values(@Name,@Sculpture)";
            byte[] ib = new Byte[10486760];
            FileStream fs = new FileStream(@filename, FileMode.Open, FileAccess.Read);
            fs.Read(ib, 0, 10486760);
            SqlParameter[] param = new SqlParameter[]
            {
                new SqlParameter("Name", SqlDbType.VarChar, 50),
                new SqlParameter("@Sculpture", SqlDbType.Image, (int)fs.Length)
            };
            param[0].Value = "AA";
            param[1].Value = ib;

            int result = SQLHelper.Update(sql, param);
        }

根據名稱返回單一圖片

        public static Image GetPic(string Id)
        {
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();
            string sql = "select Sculpture from ImgTest where Name = '{0}'";
            sql = string.Format(sql, Id);
            SqlCommand cmd = new SqlCommand(sql, conn);

            SqlDataReader reader = cmd.ExecuteReader();
            reader.Read();
            MemoryStream buf = new MemoryStream((byte[])reader[0]);
            Image image = Image.FromStream(buf, true);
            return image;
        }

修改特定對象的圖片內容

        public static void Change(string filename,string Name)
        {
            string sql = "update ImgTest set Sculpture = @Sculpture where Name = @Name";
            byte[] ib = new Byte[10486760];
            FileStream fs = new FileStream(@filename, FileMode.Open, FileAccess.Read);
            fs.Read(ib, 0, 10486760);
            SqlParameter[] param = new SqlParameter[]
            {
                new SqlParameter("Name", SqlDbType.VarChar, 50),
                new SqlParameter("@Sculpture", SqlDbType.Image, (int)fs.Length)
            };
            param[0].Value = Name;
            param[1].Value = ib;

            int result = SQLHelper.Update(sql, param);
        }

從數據庫中獲取某圖片

        public static Image GetPic(string Id)
        {
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();
            string sql = "select Sculpture from ImgTest where Name = '{0}'";
            sql = string.Format(sql, Id);
            SqlCommand cmd = new SqlCommand(sql, conn);

            SqlDataReader reader = cmd.ExecuteReader();
            reader.Read();
            MemoryStream buf = new MemoryStream((byte[])reader[0]);
            Image image = Image.FromStream(buf, true);
            return image;
        }

從數據庫中獲取圖片組


            string sql1 = "select Sculpture from ImgTest";
            DataSet ds1 = SQLHelper.GetDataSet(sql1);
            foreach (DataRow item in ds1.Tables[0].Rows)
            {
                obj.Add(ImageConvert.ArryToPic((byte[])item.ItemArray[0]));
            }

將含圖片的DateSet映射到控件

            string sql = "select *from ImgTest";
            DataSet ds = SQLHelper.GetDataSet(sql);
            DataShow.DataSource = ds.Tables[0];

效果

附測試工程文件:https://download.csdn.net/download/weixin_37878740/12293188

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章