利用C#从Access数据库中存取图片

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8. using System.IO;  
  9. using System.Data.OleDb;  
  10.   
  11. namespace WindowsApplication1  
  12. {  
  13.     public partial class Form2 : Form  
  14.     {  
  15.         public Form2()  
  16.         {  
  17.             InitializeComponent();  
  18.         }  
  19.   
  20.         private void button1_Click(object sender, EventArgs e)  
  21.         {  
  22.             OpenFileDialog ofd = new OpenFileDialog();  
  23.             if (ofd.ShowDialog() == DialogResult.OK)  
  24.             {  
  25.                 label1.Text = ofd.FileName;  
  26.                 this.pictureBox1.Image = Image.FromFile(label1.Text);  
  27.             }  
  28.         }  
  29.   
  30.         OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/student.mdb");  
  31.         DataSet ds = new DataSet();  
  32.         private void button2_Click(object sender, EventArgs e)  
  33.         {  
  34.             FileStream fs = new FileStream(label1.Text, FileMode.Open, FileAccess.Read);  
  35.             byte[] data = new byte[fs.Length];  
  36.             fs.Read(data, 0, data.Length);  
  37.             fs.Close();  
  38.   
  39.             OleDbCommand command = new OleDbCommand();  
  40.             command.CommandText = "insert into pictureTab values(@id,@picture)";  
  41.             command.Parameters.AddWithValue("@id", textBox1.Text);  
  42.             command.Parameters.AddWithValue("@picture", data);  
  43.             command.Connection = conn;  
  44.             try  
  45.             {  
  46.                 conn.Open();  
  47.                 int i = command.ExecuteNonQuery();  
  48.             }  
  49.             catch (Exception ex)  
  50.             {  
  51.                 MessageBox.Show(ex.ToString());  
  52.             }  
  53.             finally  
  54.             {  
  55.                 conn.Close();  
  56.                 command = null;  
  57.             }  
  58.         }  
  59.   
  60.         private void button3_Click(object sender, EventArgs e)  
  61.         {  
  62.             OleDbCommand command = new OleDbCommand();  
  63.             command.CommandText = "select picture from pictureTab where (id = @id)";  
  64.             command.Parameters.AddWithValue("@id", textBox1.Text);  
  65.             command.Connection = conn;  
  66.             OleDbDataAdapter adapter = new OleDbDataAdapter(command);  
  67.             try  
  68.             {  
  69.                 //ds = new DataSet();  
  70.                 conn.Open();  
  71.                 adapter.Fill(ds, "picture");  
  72.             }  
  73.             catch (Exception ex)  
  74.             { MessageBox.Show(ex.ToString()); }  
  75.             finally  
  76.             {  
  77.                 conn.Close();  
  78.                 command = null;  
  79.                 adapter = null;  
  80.             }  
  81.   
  82.             byte[] data = (byte[])ds.Tables["picture"].Rows[0]["picture"];  
  83.             using (MemoryStream memStream = new MemoryStream(data))  
  84.             {  
  85.                 this.pictureBox1.Image = Image.FromStream(memStream);  
  86.                 ds.Tables.Clear();  
  87.             }  
  88.         }  
  89.     }  
  90. }  
  91. /*int id = int.Parse(textBox1.Text); 
  92. command = new OleDbCommand(); 
  93. command.CommandText = "select picture from ?? where(id=@id)"; 
  94. command.Parameters.AddWithValue("@id", id); 
  95. command.Connection = conn; 
  96. conn.Open(); 
  97. OleDbDataReader reader = command.ExecuteReader(); 
  98. reader.Read(); 
  99. byte[] data = (byte[])reader["picture"]; 
  100. MemoryStream mem = new MemoryStream(data); 
  101. pictureBox1.Image = Image.FromStream(mem); 
  102. conn.Close();*/  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值