Insert Image to Database use Sql Server 2000

Mục đích : Sử dụng đường dẫn file ảnh để lưu vào ảnh vào cơ sơ dữ liệu

Nội dung :

– Lấy đường dẫn ảnh. Upload đường dẫn vào CSDL. Lôi tấm ảnh ra sử dụng.

– Hướng dẫn cách chuyển thành kiểu Byte. Lưu và truy xuất đường dẫn file trong CSDL thông thường.

Yêu cầu:

Visual Studio

Sql Server 2000 : Server Name (Local), database= csdl. User=sa và password=sa;

Okie. Mọi thứ chuẩn bị xong. Giờ ta bắt tay vào thiết kế chương trình thôi nào.

 

 

 

 

 

 

 

 

 

Design:

Thiết kế 1 Form như hình vẽ sau: Gồm 4 button, 2 picturebox, 1 combobox, 1 textbox, 1 statusStrip1

 

http://www.upanh.com/1/v/11224813.htm

http://c.upanh.com/upload/7/14/CS0.11224813_22660_25093.jpg

[IMG]http://c.upanh.com/upload/7/14/CS0.11224813_22660_25093.jpg[/IMG]

 

 

 

 

 

 

 

 

 

 

Thiết kế CSDL:

 

http://www.upanh.com/2/v/11224824.htm

http://c.upanh.com/upload/7/14/CS0.11224824_22660_25093.jpg

[IMG]http://c.upanh.com/upload/7/14/CS0.11224824_22660_25093.jpg[/IMG]

 

Tên : csdl

Bảng: csdl_anh

Trường : ID kiểu số- tự động tăng

Name- kiểu Image

Note- Nvachar- cái này ko có cũng chẳng sao ^^ (Nếu muốn ghi chú gì về tấm ảnh thì viết vô đây cũng được)

 

Xong việc thiết kế giờ ta code cho từng nút nhé. Chú ý là các control tớ để mặc định.

 

 

[Code]

  1. KHAI BÁO THƯ VIỆN VÀ BIẾN DÙNG CHUNG
    1. Thư viện

// Khai bao thu vien

using System.IO;

using System.Data.SqlClient;

    1. Biến

// Bien dung chung

 

string tenanh;

SqlConnection con;

SqlCommand cmd;

SqlDataAdapter da;

DataSet ds;

string chuoi;

  1. Tạo một phương thức “mở kết nối”

private void moketnoi()

{

try

{

string ketnoi = “server=(local);database=csdl;user=sa;password=sa”;

con = new SqlConnection(ketnoi);

con.Open();

 

 

chuoi = “select*from csdl_anh”;

cmd = new SqlCommand();

 

da = new SqlDataAdapter(chuoi, con);

ds = new DataSet();

da.Fill(ds);

 

DataTable dat = new DataTable();

dat = ds.Tables[0];

comboBox1.Items.Clear();

 

foreach (DataRow dr in dat.Rows)

{

comboBox1.Items.Add(dr[0].ToString());

comboBox1.SelectedIndex = 0;

 

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

 

}

 

}

 

  1. Lấy file ảnh trong máy (Sự kiện cho nút nhấn 1- như trên hình vẽ)

private void button1_Click_1(object sender, EventArgs e)

{

// Mo thu muc. Tim den file anh can load

try

{

FileDialog fdg = new OpenFileDialog();

fdg.InitialDirectory = @”d:\”;

fdg.Filter = “File anh(*.jpg;*.bmp;*.gif)|*jpg;*bmp;*gif”;

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

{

tenanh = fdg.FileName;

Bitmap anh = new Bitmap(tenanh);

//  pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

pictureBox1.Image = (Image)anh;

toolStripStatusLabel1.Text = “Đường dẫn file ảnh : ” + tenanh;

textBox1.Text = tenanh;

button2.Visible = true;

}

fdg = null;

}

catch (Exception ex)

{

tenanh = ” “;

MessageBox.Show(ex.Message);

}

}

 

  1. Lưu file ảnh- lưu ý là csdl phần khóa ID là kiểu số tự động tăng. Do vậy sẽ chỉ thêm vào phần Name trong csdl. Nếu bạn làm ID ko tư động tăng thì phài nhập thông qua một ô textbox khác. Vì khóa không thể để trống được. Xem thêm mục 6. ví dụ thêm qua ID nữa heng. . Code lưu file ảnh này là cho sự kiến nhấn của button2

private void button2_Click(object sender, EventArgs e)

{

// dua file anh vao csdl

try

{

if (tenanh != “”)

{

FileStream frm;

frm = new FileStream(@tenanh, FileMode.Open, FileAccess.Read);

 

byte[] picbyte = new byte[frm.Length];

frm.Read(picbyte, 0, System.Convert.ToInt32(frm.Length));

frm.Close();

// ketnoi

string ketnoi = “server=(local);database=csdl;user=sa;password=sa”;

con = new SqlConnection(ketnoi);

con.Open();

 

chuoi = “insert into csdl_anh(Name) values(@pic)”;

 

SqlParameter picpara = new SqlParameter();

picpara.SqlDbType = SqlDbType.Image;

picpara.ParameterName = “pic”;

picpara.Value = picbyte;

 

cmd = new SqlCommand(chuoi, con);

cmd.Parameters.Add(picpara);

cmd.ExecuteNonQuery();

 

MessageBox.Show(“Image added succesfull”);

 

cmd.Dispose();

con.Dispose();

 

 

moketnoi();

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

 

}

}

 

  1. Xem file ảnh trong cơ sở dữ liệu ( sự kiến nhấn cho nút thứ 3). Bạn đã đưa file ảnh vào csdl . giờ muốn xem nó thông qua pictuter thì code như sau:

 

private void button3_Click(object sender, EventArgs e)

{

DataTable datatable = ds.Tables[0];

if (pictureBox2.Image != null)

{

pictureBox2.Image.Dispose();

}

FileStream fs1 = new FileStream(“image.jpg”, FileMode.Create);

foreach (DataRow datarow in datatable.Rows)

{

if (datarow[0].ToString() == comboBox1.SelectedItem.ToString())

{

byte[] blob = (byte[])datarow[1];

fs1.Write(blob, 0, blob.Length);

fs1.Close();

fs1 = null;

pictureBox2.Image = Image.FromFile(“image.jpg”);

pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;

pictureBox2.Refresh();

 

 

}

}

}

  1. Hết ( code nút thoát chứ gì nữa ^^)

Application.Exit();

  1. Code bổ sung: Khi bạn không tạo csdl phần ID là kiểu số tự động tăng thì thêm 1 ô textbox nữa vào. Và trước khi, thêm csdl thì phải nhập số vào cho ô textbox này nhé. Code bên dưới là ta thêm vào qua ô textbox6.

chuoi = “insert into csdl_anh(ID,Name)values(” + textBox6.Text + “,” + “@pic)”;

-à giờ đã xong. Bạn thử F5 xem chương trình nó chạy thế nào nhé!

 

[/code]

 

 

Source code full and Demo here:

[IMG]http://c.upanh.com/upload/7/14/CS0.11224813_22660_25093.jpg[/IMG]

[IMG]http://c.upanh.com/upload/7/14/CS0.11224824_22660_25093.jpg[/IMG]

http://www.mediafire.com/file/tnklmn4ydmg/InsertImageToSQL_Tesulakata.rar

http://www.mediafire.com/?sharekey=3402828850897022e7c82ed4b8f0c380e07bc9fa7c4dc93579b5ba589d1986ba ( Cả code + File doc hướng dẫn)

 

 

 

  1. Other (the last)- Sử dụng Access để lưu file ảnh. Link tại đây
  2. End ( the last)._ Load ngẫu nhiên 1 dòng từ file text lên form. ( Sử dụng cho các chương trình trắc nghiệm….) Link tại đây

 

 

 

*********

About : http://hoclaptrinhcanban.tk

Author: Tesulakata@yahoo.com.vn

Phone : 0972.096.906

 

 

 

 

Advertisements

One thought on “Insert Image to Database use Sql Server 2000

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s