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

Quý khách hàng rất có thể viết bài xích bắt đầu.Quý Khách rất có thể "đặt hàng" bài viết.Mọi cụ thể xin mail về cho tác giả blog. Xin chân thành cảm ơn sự hiệp tác của những 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 phản hồi gần đây

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


Đừng nghĩ bạn được từng nào điểm. Đừng suy nghĩ bạn học ngơi nghỉ trường nào. Đừng suy nghĩ bạn giỏi nghiệp một số loại gì. Hãy nghĩ: MÌNH CÓ GÌ TRONG ĐẦU.

Bạn đang xem: Lưu đường dẫn ả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ảnnhững bài tập chương4GUI applicationLập trình java nângcaoCác nhà đềkhácJDBC – Java DatabaseConnectivityJPA – Java PersistenceAPINetworkingđiện thoại DevAndroid developmentMy GardenÂm nhạcSeminarMy ProjectsSEVisual BasicWebASPhường.NetHost ứng dụngwebJSF – Java ServerFaceJquái nhân RichFacesRichFaces: Logon và RegistrationapplicationJSPServlet programmingStrutsWeb servicesC# Web servicesJava Web servicesTạo Web services với JAX-WS 2.0 và Java SE 6PlatformXMLJXML – JSPXSLT Examples

Blog Stats

2,904,658 hits

E-Mail Subscription

Enter your tin nhắn address lớn subscribe khổng lồ this blog and receive notifications of new posts by gmail.


Join 2,200 other followers


E-Mail Address:

Sign me up!


Lưu hình hình họa vàodatabase

Trong bài viết này tôi đã chỉ dẫn chúng ta cách cyếu hình hình họa trực tiếp vào database. Cách này Mặc dù khiến cho database lớn/nặng nề nhưng lại nó cũng giải quyết và xử lý không ít vấn đề vào quy trình xây dựng.Ở đây, csdl tôi thực hiện là ms Access cùng MS SQLVPS.Cách 1: Database là Access1. Quý khách hàng tạo 1 file access mang tên TestDB.mdb phía trong tlỗi mục bindebug của ứng dụng(nơi khác cũng không sao, tùy).Tạo 1 bảng mang tên tblSinhvien gồm cấu trúc nhỏng sau:

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

2. Tạo 1 Windows Form Application Project bao gồm tên Store_Retrieve_Image_From_DB.

Xem thêm: Hướng Dẫn Sử Dụng Total Commander 7, Gửi File Bằng Phần Mêm Total Commander 7

3. Tạo lớp có tên ConnectDB.cs với câu chữ 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ơm thức constructor khởi tạo thành kết nối cho database/// public ConnectDB()trynhỏ = new OleDbConnection();bé.ConnectionString = “Provider=microsoft.jet.OLEDB.4.0;Data Source=”+System.Windows.Forms.Application.StartupPath+”\TestDB.mdb”;con.Open();catch (Exception)throw;/// /// Lấp về tất cả các mẫu tin vào 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 những chuyển đổi 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 để gọi tài liệu tự database cũng như update tài liệu xuống database.

3. Thiết kế MainForm nhỏng hình

*
4. Code đế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 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<“tblSinhvien”>;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ự khiếu nại xẩy ra khi binding source tất cả sự biến đổi vì chưng người/// dùng lựa chọn những loại bên trên lưới hặc nhấn những nút ít di chuyển./// /// /// void bs_CurrentItemChanged(object sender, EventArgs e)DataRowView row = (DataRowView)bs.Current;tryByte<> i = (byte<>)row<“hinhAnh”>;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<“MSSV”> = 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<“hinhAnh”> = bytBLOBData;dtSV.Rows.Add(dr);

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

private void btnLoadHinh_Click(object sender, EventArgs e)GIF Files(*.GIF)

Chụ ý:

Để gọi dữ liệu hình hình ảnh ra ta dùng 1 mảng Byte để chứa cực hiếm của field hình hình ảnh. Sau đó mong mỏi hiển thị nó lên PictureBox ta bắt buộc cần sử dụng MemoryStream để đưa ra:

Byte<> i = (byte<>)row<"hinhAnh">;MemoryStream stmBLOBData = new MemoryStream(i);picHinhAnh.Image = Image.FromStream(stmBLOBData);

Để cập nhật tài liệu vào db, ta buộc phải đem 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);

Rồi tiếp đến bắt đầu gửi nó thành mảng Byte rồi cung cấp cho một datarow nhằm update xuống database.

Xem thêm: Tải Phần Mềm Đăng Tin Trên Facebook Fplus, Phần Mềm Đăng Bài Tự Động Lên Facebook Miễn Phí

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

Chạy ứng dụng, tác dụng như hình sau:

*

Cách 2: Database là Microsoft SQL Server

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

*
2. Tạo stored project có tên InsertImage với sql script nhỏng sau:

CREATE PROCEDURE InsertImage
blobdata)

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

4. Tạo lớp ConnectDB.cs tất cả câu chữ nhỏng 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))SqlComm& cmd = new SqlCommand(“InsertImage”, conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.AddWithValue(“
blobdata”>.Direction = ParameterDirection.Input;// Store the byte array within the image fieldcmd.Parameters<“
blobdata”>.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 comm& & connection// The comm& 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 byteform size = 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ỏng hình
*

6. Code đế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 Files(*.GIF)

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: Lỗi Kỹ Thuật