<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        mysql如何儲存讀取圖片

        來源:懂視網 責編:小采 時間:2020-11-08 22:13:09
        文檔

        mysql如何儲存讀取圖片

        mysql如何儲存讀取圖片:mysql儲存讀取圖片的方法:首先將圖片轉換成緩沖流;然后獲得圖片的字節數組并執行相關操作;最后通過public void MapSearchQuery(out byte[] imageByteResulet){...}讀取圖片即可。推薦:《mysql視頻教程》 首先,介紹一下mysql相關的數據類
        推薦度:
        導讀mysql如何儲存讀取圖片:mysql儲存讀取圖片的方法:首先將圖片轉換成緩沖流;然后獲得圖片的字節數組并執行相關操作;最后通過public void MapSearchQuery(out byte[] imageByteResulet){...}讀取圖片即可。推薦:《mysql視頻教程》 首先,介紹一下mysql相關的數據類

        推薦:《mysql視頻教程》

        首先,介紹一下mysql相關的數據類型:MySQL中有四種BLOB類型,TinyBlob(最大255Byte), Blob(最大65K), MediunBlob(16M), LongBlob(最大4G)。這里注意一下如果你數據庫出現相關的Data too long...字樣可能是你選擇的種類的大小不夠。

        接下來簡單說一下我為什么沒有用存儲圖片路徑的方式,而采取了直接在MySQL中存儲圖片的方式。原因有兩點:

        1、本身不需要大量圖片,一個數據庫只需要一張圖片

        2、軟件結構是要通過WebService由一個主客戶端去訪問下面附屬的幾個客戶端,如果附屬客戶端不存儲圖片直接供主客戶端訪問,那么主客戶端勢必就需要一個加載圖片的功能(類似于FTP的功能)。

        下面還是直接上代碼吧:

        public bool MapSearchWrite(string strImagePath)
         {
         //將圖片轉換成緩沖流
         FileStream fs = new FileStream(strImagePath, FileMode.Open, FileAccess.Read);
         
         //獲得圖片的字節數組
         byte[] byImage = new byte[fs.Length];
         fs.Read(byImage, 0, byImage.Length);
         fs.Close();
         //數據庫連接
         MySqlConnection conn = new MySqlConnection();
         conn.ConnectionString = "Server=localhost;Uid=root;Password=123456;Database=firefighting;charset=gb2312";
         try
         {
         conn.Open();
         }
         catch
         {
         conn.Close();
         conn.Dispose();
         throw new ArgumentException("地圖檢索數據庫連接失敗");
         }
         //判斷數據庫內部有無記錄
         string strQueryCmd = "select PicNum from images";
         MySqlCommand cmdQuery = new MySqlCommand(strQueryCmd, conn);
         MySqlDataReader dataReader = cmdQuery.ExecuteReader();
         //執行操作
         MySqlCommand cmd = new MySqlCommand();
         if (dataReader.Read())
         {
         cmd.CommandText = "update images set Image=@byImage";
         }
         else
         {
         cmd.CommandText = "insert into images(Image) values(@byImage)";
         }
         
         cmd.CommandType = CommandType.Text;
         cmd.Parameters.Add("@byImage", MySqlDbType.MediumBlob);
         cmd.Parameters[0].Value = byImage;
         cmd.Connection = conn;
         
         int affectedRows = 0;
         try
         {
         affectedRows = cmd.ExecuteNonQuery();
         }
         catch
         {
         affectedRows = -1;
         }
         //關閉連接等
         cmd.Dispose();
         conn.Close();
         conn.Dispose();
         if (affectedRows <= 0)
         {
         return false;
         }
         else
         {
         return true;
         }
         }

        這是把圖片插入到數據庫的操作代碼,路徑的話就是你所需要存儲的圖片所在的路徑(包括圖片的名字和后綴名哦),另外我這里采用的是ADO.NET的連接方式,語言是C#的,其他代碼也不用我解釋了......

        下面是讀取MySQL中的圖片的代碼

         public void MapSearchQuery(out byte[] imageByteResulet)
         {
         imageByteResulet = null;
         MySqlConnection conn = new MySqlConnection();
         conn.ConnectionString = "Server=localhost;Uid=root;Password=123456;Database=firefighting;charset=gb2312";
         try
         {
         conn.Open();
         }
         catch
         {
         conn.Close();
         conn.Dispose();
         throw new ArgumentException("地圖檢索數據庫連接失敗");
         }
         string strQueryCmd = "select Image from images limit 1";
         MySqlCommand cmd = new MySqlCommand(strQueryCmd, conn);
         MySqlDataReader dataReader = null;
         try
         {
         dataReader = cmd.ExecuteReader();
         }
         catch
         {
         dataReader.Dispose();
         cmd.Dispose();
         conn.Close();
         conn.Dispose();
         throw new ArgumentException("地圖檢索查詢地圖失敗");
         }
         if (dataReader.Read())
         {
         imageByteResulet = new byte[dataReader.GetBytes(0, 0, null, 0, int.MaxValue)];
         dataReader.GetBytes(0, 0, imageByteResulet, 0, imageByteResulet.Length);
         //將圖片字節數組加載入到緩沖流
         // MemoryStream imageStream = new MemoryStream(imageByte);
         //從緩沖流生成圖片
         //imageResulet = Image.FromStream(imageStream, true);
         }
         dataReader.Dispose();
         cmd.Dispose();
         conn.Close();
         conn.Dispose();
         }

        當然這里我是照顧到Image對象不能通過WebService傳輸而把BLOB數據只轉換成byte[]在傳輸,如果不需要這個功能的換可以直接把相關代碼踢出來再將byte[]轉成圖片對象即可,一下提供兩種方法

        第一種:imageByte是調用上面函數得到的byte[]的數據

        //將圖片字節數組加載入到緩沖流 
        MemoryStream imageStream = new MemoryStream(imageByte);
         //從緩沖流生成圖片 
         imageResulet = Image.FromStream(imageStream, true);
         //pictureBox是一個顯示圖片或者視頻的C#控件
         pictureBox.Image = imageResulet;

        這樣就把圖片讀取出來并顯示出來了

        第二種:BitMap是System.Drawingm命名空間中的

        Bitmap bm = new Bitmap(new MemoryStream(
        imageByte
        ));
         
         
         pictureBox1.Image = bm;

        那么,到此我就說完了,當然不是迫不得已不要把圖片存到數據庫中,可以做個url映射,返回文件流(這個目前沒試過,有時間試過后再把經驗分享給大家)。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        mysql如何儲存讀取圖片

        mysql如何儲存讀取圖片:mysql儲存讀取圖片的方法:首先將圖片轉換成緩沖流;然后獲得圖片的字節數組并執行相關操作;最后通過public void MapSearchQuery(out byte[] imageByteResulet){...}讀取圖片即可。推薦:《mysql視頻教程》 首先,介紹一下mysql相關的數據類
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产AV无码专区亚洲Av| 久久亚洲2019中文字幕| 亚洲的天堂av无码| 最近中文字幕2019高清免费| 亚洲精品无码乱码成人| 免费无码H肉动漫在线观看麻豆| 久久亚洲高清观看| 久草视频在线免费看| 亚洲视频免费在线播放| 亚色九九九全国免费视频| 亚洲欧美日韩久久精品| 免费a级毛片网站| 99久久成人国产精品免费| 亚洲一区二区三区四区在线观看| 97碰公开在线观看免费视频| 亚洲黄色激情视频| 又色又污又黄无遮挡的免费视| 午夜在线免费视频 | 亚洲人成依人成综合网| 3d成人免费动漫在线观看| 亚洲av无码国产综合专区| 日本不卡视频免费| 97超高清在线观看免费视频| 亚洲小说图片视频| 亚洲AⅤ优女AV综合久久久| 国产免费阿v精品视频网址| 亚洲国产中文在线视频| 内射无码专区久久亚洲| 久久青草91免费观看| 亚洲色成人WWW永久在线观看| 免费一级肉体全黄毛片| 久久99热精品免费观看牛牛| 亚洲天堂2017无码中文| 亚洲色欲久久久综合网东京热| 亚欧色视频在线观看免费| 免费人成大片在线观看播放| 337p日本欧洲亚洲大胆艺术| 日本免费中文字幕在线看| 久久久久久成人毛片免费看| 亚洲av无码一区二区三区天堂| 久久99国产亚洲高清观看首页|