***** Programmer *****
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
***** 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
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptyWed Oct 24, 2012 5:28 am by quangvuspkt

» Bai tap Java can ban (Phan III )
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptySat Sep 15, 2012 4:11 am by tsuyngam

» Bai tap Java can ban (Phan I )
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptySat Sep 15, 2012 4:08 am by tsuyngam

» Một số bài tập C# căn bản
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptyThu Dec 15, 2011 1:58 pm by nguyenhoduykhang

» Xem thông tin máy tính bằng c#
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptyTue Nov 08, 2011 8:19 am by namcongtu288

» My First Browser Tree Program in VB.NET
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptyFri Aug 12, 2011 5:50 pm by kimthaohg85

» Giúp em bài C++ này với
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptySun Jul 31, 2011 12:19 pm by kubin

» GIUP DO XAY DUNG BO GO TIENG VIET CODE C#
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptySun Jul 24, 2011 8:40 pm by phonui82

» CHÀO TẤT CẢ CÁC THÀNH VIÊN TRONG DIỄN ĐÀN
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 EmptyTue Jul 19, 2011 9:28 am by phonui82

Đăng Nhập

Quên mật khẩu



November 2024
MonTueWedThuFriSatSun
    123
45678910
11121314151617
18192021222324
252627282930 

Calendar Calendar


You are not connected. Please login or register

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

Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Tesulakata

Tesulakata
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
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 CS0.11224813_22660_25093










Thiết kế CSDL:

http://www.upanh.com/2/v/11224824.htm
http://c.upanh.com/upload/7/14/CS0.11224824_22660_25093.jpg
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 CS0.11224824_22660_25093

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:
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 CS0.11224813_22660_25093
[Tut] Đưa hình ảnh vào CSDL xài SQL 2000 CS0.11224824_22660_25093
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




https://programmer.4umer.com

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