Lưu đường dẫn ảnh vào database

     
Quý khách hàng hoàn toàn có thể viết bài xích bắt đầu.Quý Khách rất có thể "đặt hàng" nội dung bài viết.Mọi chi tiết xin mail về cho tác giả blog. Xin rất cảm ơn sự hiệp tác của các bạn!

Recent Posts

Archives

ArchivesSelect Month August 2011 (1) March 2011 (1) June 2010 (1) January 2010 (1) September 2009 (1) May 2009 (1) March 2009 (1) December 2008 (3) November 2008 (1) October 2008 (1) October 2007 (1)

Subscribe

Các đánh giá ngay gần đây

Các trang được yêu thích

Đừng nghĩ về chúng ta được bao nhiêu điểm. Đừng nghĩ bàn sinh hoạt sinh hoạt trường nào. Đừng nghĩ chúng ta xuất sắc nghiệp một số loại gì. Hãy nghĩ: MÌNH CÓ GÌ TRONG ĐẦU.quý khách đang xem: Lưu đường truyền hình ảnh vào database

Pages

C#CTDLJ2EEEJBEJB 2.x với NetBeans 6.7.1 và Jquái dị AS 4.23GAEJB 3Java MailJMSRMIJavaLập trình java cănbảnbài tập chương4GUI applicationLập trình java nângcaoCác công ty đềkhácJDBC – Java DatabaseConnectivityJPA – Java PersistenceAPINetworkingSmartphone DevAndroid developmentMy GardenÂm nhạcSeminarMy ProjectsSEVisual BasicWebASP..NetHost ứng dụngwebJSF – Java ServerFaceJquái dị RichFacesRichFaces: Logon với RegistrationapplicationJSPServlet programmingStrutsWeb servicesC# Web servicesJava Web servicesTạo Web services cùng với JAX-WS 2.0 và Java SE 6PlatformXMLJXML – JSPXSLT Examples

Blog Stats

2,904,658 hits

Thư điện tử Subscription

Enter your gmail address to lớn subscribe to this blog và receive notifications of new posts by tin nhắn.

Bạn đang xem: Lưu đường dẫn ảnh vào database

Join 2,200 other followers

Email Address:

Sign me up!

Lưu hình hình ảnh vàodatabase

Trong nội dung bài viết này tôi sẽ lí giải chúng ta phương pháp cnhát hình hình họa thẳng vào database. Cách này mặc dù tạo nên database lớn/nặng nề nhưng mà nó cũng giải quyết và xử lý rất nhiều vụ việc trong quá trình xây dựng.Ở trên đây, csdl tôi thực hiện là ms Access với MS SQLserver.

Xem thêm: Chỉnh Full Màn Hình Win 7, Win 8, Win 10, Cách Chỉnh Full Màn Hình Win 7

Cách 1: Database là Access1. quý khách tạo nên 1 tệp tin access có tên TestDB.mdb phía trong thỏng mục bindebug của ứng dụng(chỗ khác cũng không vấn đề gì, tùy).Tạo 1 bảng mang tên tblSinhvien gồm cấu tạo nlỗi sau:

Tên fieldKiểu dữ liệu
MSSVText(15)
hinhAnhOLE Object

3. Tạo lớp mang tên ConnectDB.cs cùng với ngôn từ sau:

using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.OleDb;namespace Store_Retrieve_Image_From_DBpublic class ConnectDBprivate OleDbConnection con;private DataSet ds;private OleDbDataAdapter daSV;/// /// Phương thức constructor khởi tạo thành liên kết đến database/// public ConnectDB()trycon = new OleDbConnection();con.ConnectionString = “Provider=microsoft.jet.OLEDB.4.0;Data Source=”+System.Windows.Forms.Application.StartupPath+”\TestDB.mdb”;nhỏ.Open();catch (Exception)throw;/// /// Lấp về toàn bộ những mẫu tin trong bảng tblSinhvien/// /// public DataSet GetTable()ds = new DataSet();daSV = new OleDbDataAdapter(“select * from tblSinhvien”, con);daSV.Fill(ds, “tblSinhvien”);return ds;/// /// Cập nhật các đổi khác của bạn dùng/// public void UpdateSV()tryOleDbCommandBuilder bd = new OleDbCommandBuilder(daSV);daSV.Update(ds, “tblSinhvien”);catch (Exception)

throw;

Lớp này dùng để làm phát âm tài liệu tự database cũng như cập nhật tài liệu xuống database.

Xem thêm: Cách Kết Nối Điện Thoại Với Âm Ly, Cách Kết Nối Điện Thoại Với Amply Rất Đơn Giản

3. Thiết kế MainForm nlỗi hình

*

4. Code cho Form:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Windows.Forms;namespace Store_Retrieve_Image_From_DBpublic partial class MainForm : Formprivate ConnectDB conDB;private DataSet ds = new DataSet();private BindingSource bs;private DataTable dtSV;

public MainForm()InitializeComponent();

private void MainForm_Load(object sender, EventArgs e)tryconDB = new ConnectDB();ds = conDB.GetTable();dtSV = ds.Tables;bs = new BindingSource(ds, “tblSinhvien”);bs.CurrentItemChanged += new EventHandler(bs_CurrentItemChanged);dataGridView1.DataSource = bs;bindingNavigator1.BindingSource = bs;catch (Exception ex)MessageBox.Show(ex.ToString());/// /// Sự kiện xảy ra Lúc binding source có sự chuyển đổi vày người/// dùng lựa chọn các loại bên trên lưới hặc dìm các nút ít dịch chuyển./// /// /// void bs_CurrentItemChanged(object sender, EventArgs e)DataRowView row = (DataRowView)bs.Current;tryByte i = (byte)row;MemoryStream stmBLOBData = new MemoryStream(i);picHinhAnh.Image = Image.FromStream(stmBLOBData);catch (Exception ex)picHinhAnh.Image = null;MessageBox.Show(ex.ToString());

private void btnLuu_Click(object sender, EventArgs e)tryDataRow dr = dtSV.NewRow();dr = txtMSSV.Text;if (picHinhAnh.Image != null)MemoryStream ms = new MemoryStream();picHinhAnh.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

Byte bytBLOBData = new Byte;ms.Position = 0;ms.Read(bytBLOBData, 0, Convert.ToInt32(ms.Length));dr = bytBLOBData;dtSV.Rows.Add(dr);

conDB.UpdateSV();catch (Exception ex)MessageBox.Show(ex.ToString());

private void btnLoadHinh_Click(object sender, EventArgs e)*.GIF”;if (dlg.ShowDialog(this) == DialogResult.OK)picHinhAnh.Image = Image.FromFile(dlg.FileName);

Crúc ý:

Để hiểu tài liệu hình hình ảnh ra ta cần sử dụng 1 mảng Byte để cất quý hiếm của field hình hình họa. Sau đó ý muốn hiển thị nó lên PictureBox ta buộc phải cần sử dụng MemoryStream để mang ra:

Byte i = (byte)row;MemoryStream stmBLOBData = new MemoryStream(i);picHinhAnh.Image = Image.FromStream(stmBLOBData);

Để update tài liệu vào db, ta đề xuất mang hình ảnh trường đoản cú PictureBox vào 1 MemoryStream:

MemoryStream ms = new MemoryStream();picHinhAnh.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

Byte bytBLOBData = new Byte;ms.Position = 0;ms.Read(bytBLOBData, 0, Convert.ToInt32(ms.Length));dr = bytBLOBData;dtSV.Rows.Add(dr);

Chạy ứng dụng, hiệu quả nhỏng hình sau:

*

Cách 2: Database là Microsoft Squốc lộ Server

1. Tạo database bao gồm tên: TestImageDB với một bảng có tên tblImages cùng tất cả kết cấu nhỏng hình sau:

*

2. Tạo stored project có tên InsertImage với sql script nlỗi sau:

CREATE PROCEDURE InsertImageblobdata)

3. Tạo Windows Form Application Project có tên AnotherWay.

4. Tạo lớp ConnectDB.cs tất cả câu chữ như sau:

using System;using System.Collections.Generic;using System.IO;using System.Data;using System.Data.SqlClient;

namespace AnotherWayclass ConnectDBprivate SqlConnection conn;private string connectionString = “Server=.;UID=sa;PWD=;Initial Catalog=TestImageDB”;

public ConnectDB()conn = new SqlConnection(connectionString);

public void StorePicture(string filename)byte imageData = null;// Read the tệp tin inlớn a byte arrayusing (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))imageData = new Byte;fs.Read(imageData, 0, (int)fs.Length);using (SqlConnection conn = new SqlConnection(connectionString))SqlCommvà cmd = new SqlCommand(“InsertImage”, conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.AddWithValue(“blobdata”>.Direction = ParameterDirection.Input;// Store the byte array within the image fieldcmd.Parametersblobdata”>.Value = imageData;conn.Open();cmd.ExecuteNonQuery();

public byte RetrieveImage()byte imageData = null;conn.Open();SqlCommvà cmd = new SqlCommand(“select blobdata from tblImages”, conn);// Assume previously established commvà and connection// The commvà SELECTs the IMAGE column from the table

using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))reader.Read();// Get size of image data – pass null as the byte array parameterlong bytekích cỡ = reader.GetBytes(0, 0, null, 0, 0);// Allocate byte array to hold image dataimageData = new byte;long bytesread = 0;int curpos = 0;int chunkSize = 1;while (bytesread // chunkSize is an arbitrary application defined valuebytesread += reader.GetBytes(0, curpos, imageData, curpos, chunkSize);curpos += chunkSize;conn.Close();// byte array ‘imageData’ now contains BLOB from databasereturn imageData;

5. Thiết kế Form như hình
*

6. Code mang đến Form:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Windows.Forms;

namespace AnotherWaypublic partial class Form1 : Formprivate ConnectDB conDB;public Form1()InitializeComponent();conDB = new ConnectDB();

private void button1_Click(object sender, EventArgs e)*.GIF”;if (dlg.ShowDialog(this) == DialogResult.OK)conDB.StorePicture(dlg.FileName);

private void button2_Click(object sender, EventArgs e)byte img = conDB.RetrieveImage();MemoryStream str = new MemoryStream(img);pictureBox1.Image = Image.FromStream(str);

7. Thực thi


Chuyên mục: Công nghệ