1. 程式人生 > >儲存圖片到access資料庫中

儲存圖片到access資料庫中

開發環境 VS2010+Access

在access資料庫中新建資料庫 並新建一張表 建兩個欄位 IMAGENAME,IMANGEBINARY

新建工程->winform程式

在窗體上 拖拽一個button按鈕和一個picturebox


程式碼

 private void button1_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog dialog = new OpenFileDialog())
            {
                dialog.Filter = "jpg|*.jpg";
                dialog.Multiselect = false;
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    string fImageName = Path.GetFileNameWithoutExtension(dialog.FileName);
                    FileStream fs = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read);
                    BinaryReader br = new BinaryReader(fs);
                    byte[] fInputImageBinary = br.ReadBytes((int)fs.Length);
                    br.Close();
                    fs.Close();
                    // 儲存到資料庫
                    if (this.InsertImageToAccess(fImageName, fInputImageBinary) > 0)
                    {
                        //MessageBox.Show("插入成功");
                    }
                    
                    // 從資料庫獲取圖片並顯示到 pictureBox1
                    Byte[] fOutputImageBinary = this.GetImageFromAccess(fImageName);
                    MemoryStream ms = new MemoryStream(fOutputImageBinary);
                    pictureBox1.Image = Image.FromStream(ms);
                }
            }
        }

        public int InsertImageToAccess(String fImageName, Byte[] fImageBinary)
        {
            // Access 表// 欄位// ImageName 文字// ImageBinary OLE 物件
            using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\RacialCarDB.mdb"))
            {
                OleDbCommand fInsertCommand = new OleDbCommand();
                fInsertCommand.Connection = conn;
                fInsertCommand.CommandText = "update tb_carBrandInfo set logo = ? where qcpp = ?";
                fInsertCommand.Parameters.Add("@logo", OleDbType.Binary, fImageBinary.Length).Value = fImageBinary;
                fInsertCommand.Parameters.Add("@qcpp", OleDbType.VarChar).Value = fImageName;
                conn.Open();
                return fInsertCommand.ExecuteNonQuery();
            }
        }

        public Byte[] GetImageFromAccess(String fImageName)
        {
            using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\RacialCarDB.mdb"))
            {
                OleDbCommand fSelectCommand = new OleDbCommand();
                fSelectCommand.Connection = conn;
                fSelectCommand.CommandText = "SELECT logo FROM tb_carBrandInfo WHERE qcpp = @qcpp";
                fSelectCommand.Parameters.Add("@qcpp", OleDbType.VarChar).Value = fImageName; conn.Open();
                object o = fSelectCommand.ExecuteScalar();
                return (o == null ? null : (Byte[])o);
            }
        }

相關推薦

儲存圖片access資料庫

開發環境 VS2010+Access 在access資料庫中新建資料庫 並新建一張表 建兩個欄位 IMAGENAME,IMANGEBINARY 新建工程->winform程式 在窗體上 拖拽一個button按鈕和一個picturebox 程式碼 private v

delphi 如何實現在MS Access資料庫影象的儲存和顯示

 一、原理介紹--流式資料的型別及其應用 在Dephi中提供了TStream來支援對流式資料的操作。TStream是萬流之源。 但由於它是一個抽象類,故不能被直接使用;而要使用其相應的子類, 如:TFileStream 、TStringStream、TMemoryStream

C# 將圖片的base64編碼儲存到Oracle資料庫

在Oracle中處理檔案儲存的方式是使用它自身的稱為Orcale大物件內的型別也就是Oracle LOB 大物件 LOB物件有4種類型分別為: blob:二進位制lob,為二進位制資料,最長可達4GB,存貯在資料庫中。clob:字元lob,字元資料,最長可以達到4GB,存

c#向Access資料庫批量插入大量記錄的方法

 最近有同事離職,我把他經手的專案接了過來,其中有一個功能,經過長時間運算以後,產生了17W條左右的記錄,一次性儲存到資料庫中,每次介面要卡頓1分鐘多,很是鬧心,決定修改一下 【基本情況】 c#、nhibernate、Access資料庫 【解決思路】 1、據說第一版

python爬蟲系統(4.4-資料儲存到mongodb資料庫)

一、如果你對mongodb不太熟悉的可以參考 二、將爬取的資料直接存入到mongodb資料庫中   1、在python中使用pymongo連線mongodb pip3 install pymongo 三、依然將之前爬取農產品產品資訊的資料存入mongodb中

python爬蟲系列(4.3-資料儲存到mysql資料庫)

一、如果你對mysql資料庫還不太熟悉   二、基本操作 1、在python中使用pymysql連線mysql 2、安裝包 pip3 install pymysql 3、定義一個建立資料庫的方法(或者手動、SQL語句建立資料庫) # 定義一個建立資料庫的函

java使用Access資料庫萬用字元的一些坑

java使用Access資料庫中萬用字元的一些坑 在使用access資料庫寫一個條件為like的語句: select mess_id ,mess_name,mess_note,mess_txt from messtable where 1=1 and mess_name like ‘*

MySQL使用儲存過程為資料庫全部的表增加備用欄位

需求描述 要為資料庫裡的所有的表統一加上十六個備用欄位,前提是備用欄位名取表名前三位,拼接上備用1-16 , 16個欄位中,其中8個varchar, 4個int, 4個datetime 1.建立一個簡單的表 DROP TABLE customer_detail_info; C

詳細介紹—獲取ACCESS資料庫所有的表名(ODBC + MFC實現)解決方法

網上關於獲取ACCESS資料庫中所有的表名的文章挺多的,但是說的不是很詳細,對於初學者來說很難看懂(我也是初學者呵呵),研究了很久,自己弄懂後,覺得很有必要做個詳細的介紹,以免其他初學者向我一樣,因為研究這個東西走很多彎路從而浪費過多寶貴的時間。  獲取ACCESS資料庫中

如何存圖片資料庫

      將圖片以二進位制形式存入資料庫時,首先要在資料庫中建立一張表,將儲存圖片的欄位型別設為Image型別,用FileStream類、BinaryReader把圖片讀成位元組的形式,賦給一個位元組陣列,然後用ADO.SqlCommand物件的ExecuteNonQuer

android儲存圖片後相簿不能馬上顯示的解決、!

圖片儲存至相簿後不能馬上儲存是因為相簿不是每次都直接掃描所有目錄,而是主要在開機時才掃描,並將圖片路徑等資訊存至 相應資料庫,進入相簿時直接從資料庫讀取所有掃描到的圖片。所以直接儲存圖片至目錄,相簿不能立刻顯示出來。解決方法是,儲存圖片後,直接把路徑等相關資訊直接插入資料庫

如何把一個access的資料倒入到另一個access資料庫

一、如果是同一臺機器上,可以使用如下兩種方式訪問另一個MDB: (1)其中表名是在db2中的表名 SELECT   *   from   表名   in   'C:\db2.mdb ' (2)其中表名是在db2中的表名 select   *   from   [;d

儲存過程在資料庫測試

    想必儲存過程大家都非常熟悉了,做系統的時候適當的使用儲存過程會起到事半功倍的效果,那麼判斷你寫的儲存過程是否正確呢?除了寫入系統進行執行以外,還有什麼方法呢?在資料庫中同樣可以進行測試,這樣就會減少一些麻煩,避免在系統執行出錯再返回資料庫修改的弊端,避免了時間的浪費

FileUpLoad圖片預覽、儲存圖片資料庫

public partial class GetImage : System.Web.UI.Page{    protected OleDbConnection connection;    protected OleDbCommand cmd;    protected OleDbDataAdapter d

如何通過ADO獲得Access資料庫的所有使用者表和表資訊

本文介紹一種通過ADO列舉Access檔案中所用使用者表和表資訊的方法,僅供參考,原始碼在VC6.0 +XP環境通過測試。 首先,需要引入msado15.dll檔案,在stdafx.h中新增: #import "c:/program files/common files/s

iOS儲存圖片到相簿的兩種方式

方式一: UIImageWriteToSavedPhotosAlbum(self.imageV.image, self, @selector(image:didFinishSavingWithEr

java+pgsql實現儲存圖片資料庫,以及讀取資料庫儲存圖片

1 /** 2 * 3 */ 4 package com.hlcui.file; 5 6 import java.io.FileInputStream; 7 import java.io.InputStream; 8 import java.sql.Connection; 9 i

scrapy----將資料儲存到MySQL資料庫

1.在pipelines.py中自定義自己的pipelineimport pymysql class PymysqlPipeline(object): def __init__(self): # 連線資料庫 self.connect =

C# Winform Access資料庫Case when語句用法

問題描述:                  在Sql中可以用Case when 語句來進行條件判斷,而在access中此語句被認定為語法錯誤無法應用。                  case when 語句語法                             

【Python爬蟲】 輕鬆幾步 將 scrapy 框架 獲取得到的 資料 儲存到 MySQL 資料庫

以下操作 是在 一個 完整的  scrapy 專案中 新增 程式碼:         中介軟體 和 spiders 中的程式碼 都不需要修改 只需要 做下面兩件事就可以將資料儲存到資料庫了,不過在寫程式碼之前 我們要先:     在終端 執行命令:net star