C#從SQL server資料庫中讀取l圖片和存入圖片

來源:互聯網
上載者:User

本執行個體主要介紹如何將圖片存入資料庫。將圖片存入資料庫,首先要在資料庫中建立一張表,將儲存圖片的欄位類型設為Image類型,用FileStream類、BinaryReader把圖片讀成位元組的形式,賦給一個位元組數組,然後用ADO.SqlCommand對象的ExecuteNonQuery()方法來把資料儲存到資料庫中。主要代碼如下:

    private void button1_Click(object sender, EventArgs e)

        {

          openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";

            if(openFileDialog1.ShowDialog()==DialogResult.OK)

            {

              string fullpath =openFileDialog1.FileName;//檔案路徑

              FileStream fs = new FileStream(fullpath, FileMode.Open);

                byte[] imagebytes =new byte[fs.Length];

                BinaryReader br = new BinaryReader(fs);

                imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));

                //開啟資料庫

                SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05");

                con.Open();

                SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con);

                com.Parameters.Add("ImageList", SqlDbType.Image);

                com.Parameters["ImageList"].Value = imagebytes;

               com.ExecuteNonQuery();

               con.Close();

             }    

}

本執行個體主要介紹如何從資料庫中把圖片讀出來。實現本執行個體主要是利用SqlDataReader從資料庫中把Image欄位值讀出來,賦給一個byte[]位元組數組,然後使用MemoryStream類與Bitmap把圖片讀取出來。主要代碼如下:

    private void button1_Click(object sender, EventArgs e)

        {

                 byte[] imagebytes = null;

                //開啟資料庫

            SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05");

                con.Open();

                SqlCommand com = new SqlCommand("select top 1* from tb_09", con);

                SqlDataReader dr = com.ExecuteReader();

                while (dr.Read())

                {

                    imagebytes = (byte[])dr.GetValue(1);

                }

                dr.Close();

                com.Clone();

                con.Close();

                MemoryStream ms = new MemoryStream(imagebytes);

                Bitmap bmpt = new Bitmap(ms);

                pictureBox1.Image = bmpt;

        }

本執行個體主要介紹如何只允許輸入指定圖片格式。用OpenFileDialog控制項開啟圖片檔案,只要將OpenFileDialog控制項的Filter屬性指定為特定的圖片格式即可。例如,開啟.bmp檔案的圖片,主要代碼如下:

this.openFileDialog1.Filter = "bmp檔案(*.bmp)|*.bmp";

在用pictureBox控制項輸入圖片時,要想統一圖片大小,只需把控制項的SizeMode屬性值設為StretchImage即可,StretchImage值表示映像的大小將調整為控制項的大小。這樣,圖片的大小就統一了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.