***** Programmer *****

Học lập trình từ căn bản

Tìm kiếm
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» Tuyên mộ thành viên
Wed Oct 24, 2012 5:28 am by quangvuspkt

» Bai tap Java can ban (Phan III )
Sat Sep 15, 2012 4:11 am by tsuyngam

» Bai tap Java can ban (Phan I )
Sat Sep 15, 2012 4:08 am by tsuyngam

» Một số bài tập C# căn bản
Thu Dec 15, 2011 1:58 pm by nguyenhoduykhang

» Xem thông tin máy tính bằng c#
Tue Nov 08, 2011 8:19 am by namcongtu288

» My First Browser Tree Program in VB.NET
Fri Aug 12, 2011 5:50 pm by kimthaohg85

» Giúp em bài C++ này với
Sun Jul 31, 2011 12:19 pm by kubin

» GIUP DO XAY DUNG BO GO TIENG VIET CODE C#
Sun Jul 24, 2011 8:40 pm by phonui82

» CHÀO TẤT CẢ CÁC THÀNH VIÊN TRONG DIỄN ĐÀN
Tue Jul 19, 2011 9:28 am by phonui82

Đăng Nhập

Quên mật khẩu



August 2017
MonTueWedThuFriSatSun
 123456
78910111213
14151617181920
21222324252627
28293031   

Calendar Calendar


You are not connected. Please login or register

[Tut] Đưa hình ảnh vào CSDL xài SQL 2000

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Tesulakata

avatar
Thành viên
Thành viên
Tutorial
Unit 5
(Part 5: 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











Thiết kế CSDL:

http://www.upanh.com/2/v/11224824.htm
http://c.upanh.com/upload/7/14/CS0.11224824_22660_25093.jpg


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:

0.   KHAI BÁO THƯ VIỆN VÀ BIẾN DÙNG CHUNG
a.   Thư viện
// Khai bao thu vien
using System.IO;
using System.Data.SqlClient;
b.   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);

            }

        }

2.   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);
            }
        }

3.   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);

            }
        }

4.   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();


                }
            }
        }
5.   Hết ( code nút thoát chứ gì nữa ^^)
Application.Exit();
6.   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é!

     


Source code full and Demo here:


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




Xem lý lịch thành viên http://programmer.4umer.com

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết