Lưu và dọc ảnh bằng C

Chia sẻ: Lại Văn Nghĩa | Ngày: | Loại File: DOC | Số trang:3

0
114
lượt xem
44
download

Lưu và dọc ảnh bằng C

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tôi xin giới thiệu với các bạn về cách chúng ta ghi và đọc với kiểu dữ liệu Image trong Sql Server với ngôn ngữ C# . Bắt đầu dự án Bạn tạo 1 dự án bạn tạo 1 Form với các Controls như sau 1 Button với tên bt_addpicture để lưu ảnh vào database 1 Button với tên bt_Dispaly để hiển thị ảnh 1 ListBox để chứa tên ảnh 1 PictureBox để hiển thị ảnh với chế độ Auto Size

Chủ đề:
Lưu

Nội dung Text: Lưu và dọc ảnh bằng C

  1. lưu và dọc ảnh bằng C# Tôi xin giới thiệu với các bạn về cách chúng ta ghi và đọc với kiểu dữ liệu Image trong Sql Server với ngôn ngữ C# . Bắt đầu dự án Bạn tạo 1 dự án bạn tạo 1 Form với các Controls như sau 1 Button với tên bt_addpicture để lưu ảnh vào database 1 Button với tên bt_Dispaly để hiển thị ảnh 1 ListBox để chứa tên ảnh 1 PictureBox để hiển thị ảnh với chế độ Auto Size Chuổi kết nối : String connectionstring = @”Server=(local),uid=sa;database=Northwind”;Lưu ý bạn cần thay đổi lại chuổi kết nối của bạn cho phù hợp Câu lệnh tạo bảng Picture string cmd = "create table Picture" + "(" + "PictureID int IDENTITY(0,1) NOT NULL PRIMARY KEY, " + "PictureName varchar(40) NOT NULL, " + "Picture Image NOT NULL" + ");"; SqlConnection c = new SqlConnection(c_string); SqlCommand cm = new SqlCommand(cmd,c); try { c.Open(); cm.ExecuteNonQuery(); } catch (SqlException ee) { MessageBox.Show(ee.Message); } finally { c.Close(); }Tiếp theo chúng ta thực hiện insert Image vào trong databse. Ta viết code cho Event bt_add_Click như sau: Khi thực hiện Click vào bt _add thì hiển thị 1 OpenDileDialog cho phép chúng ta lựa chọn ảnh. OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "All Pictures|*.bmp;*.gif;*.jpg|Bitmaps|*.bmp|GIFs|*.gi f|JPEGs|*.jpg"; if ( dlg.ShowDialog() ==DialogResult.OK ) { pictureBox1.Image = new Bitmap(dlg.FileName); string name=dlg.FileName.Substring(dlg.FileName.LastIndex Of(@"\")+1 ,dlg.FileName.Length-dlg.FileName.LastIndexOf(@"\")-1); } Tiếp theo chúng ta tạo 1 đối tượng MemoryStream để đọc Image thành byte[]
  2. MemoryStream mstr = new MemoryStream(); pictureBox1.Image.Save(mstr, pictureBox1.Image.RawFormat); byte[] arrImage = mstr.GetBuffer();Chuổi câu lệnh để insert image vào database, với 2 tham số @PName, @Pic string cmd = "insert into Picture (PictureName, Picture) values (@PName, @Pic)";Tiếp theo chúng ta thực hiện Insert Image và database đồng thời Add tên Image này lên ListBox listImageName SqlConnection c = new SqlConnection(c_string); // tạo đối tượng kết nối mới SqlCommand comm = new SqlCommand(cmd,c); comm.Parameters.Add( new SqlParameter("@PName", SqlDbType.VarChar,40)).Value = name; comm.Parameters.Add( new SqlParameter("@Pic",SqlDbType.Image)).Value = arrImage; try { c.Open(); comm.ExecuteNonQuery(); } catch(SqlException err) { MessageBox.Show(err.Message); } finally { c.Close(); } listImageName.Items.Add(name);Đã thực hiện xong quá trình lưu ảnh vào database. Việc tiếp theo chúng ta phải làm là Đọc Image từ Database, chúng ta viết Code cho Event Click bt_Dispaly như sau: if (listImageName.SelectedIndex
  3. catch (Exception ee) { MessageBox.Show(ee.Message); } finally { cc.Close(); }Lưu ý việc chạy lại Chương trình lần 2 sẽ phát sinh ra lỗi khi thực hiện câu lệnh tạo bảng vì bảng Picture đã tồn tại. Nên bạn có thể tạo trước trong Database Sql Server. Hoặc bạn cũng có thể tham khảo thêm đoạn code sau, nó dùng để xóa 1 bảng trong Databse. string cmd = "drop table Picture;"; SqlConnection c = new SqlConnection(c_string); SqlCommand cm = new SqlCommand(cmd,c); try { c.Open(); cm.ExecuteNonQuery(); } catch (SqlException ee) { MessageBox.Show(ee.Message);. Cốt lõi trong bài này là chúng ta có thể học được cách lưu và đọc ảnh trực tiếp vào cơ sở dữ liệu, chứ không phải mất công lưu đường dẫn của nó như 1 số bạn vẫn làm nữa. Chúc các bạn thành công Code
Đồng bộ tài khoản