SQL Server menyediakan tipe data khusus: image, yang merupakan tipe yang berisi data biner. Contoh di bawah ini menunjukkan cara memasukkan teks atau foto ke dalam database. Pada artikel ini kita akan melihat cara menyimpan dan membaca gambar di SQL Server.
1. Buat tabel:
Buat tabel dengan struktur ini di SQL SERVER:
2. Simpan gambar dalam database SQL SERVER.
Untuk menyimpannya dalam tabel, Anda harus mengunggahnya terlebih dahulu ke server WEB Anda. Anda dapat mengembangkan formulir web, yang digunakan untuk mengimpor gambar dari kontrol web TextBox di klien . Server WEB Anda muncul. Setel properti encType Anda ke: myltipart/formdata.Stream
imgdatastream = File1.PostedFile.InputStream;
int imgdatalen = File1.PostedFile.ContentLength
string
imgtype = File1.PostedFile.ContentType
;
byte[imgdatalen];
int n = imgdatastream.Read(imgdata, 0, imgdatalen);
string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"]
;
Perintah SqlCommand = new SqlCommand
("MASUKKAN KE ImageStore(imgtitle, imgtype, imgdata)
NILAI
(@imgtitle,@imgtype
, @imgdata)", koneksi );
;
paramTitle.Nilai = imgtitle;
perintah.Parameter.Tambahkan(paramTitle
);
SqlParameter paramData =
perintah.Parameter.Tambahkan
( paramData );
SqlParameter baru( "@imgtype", SqlDbType.VarChar, 50 );
paramType.Value = imgtype;
perintah.Parameters.Add(
paramType ;
koneksi.Open()
; ;
3. Lanjutkan membaca dari database.
Sekarang mari kita membaca data yang kita masukkan dari SQL Server! Kami akan menampilkan gambar ke browser Anda, Anda juga dapat menyimpannya ke lokasi yang Anda inginkan.
private void Page_Load(pengirim objek, System.EventArgs e)
{
string imgid =Request.QueryString
["imgid"];
string connstr=((NameValueCollection)
Context.GetConfig("appSettings"))["connstr"];
"PILIH imgdata, imgtype DARI ImageStoreWHERE
id = " + imgid;
Koneksi SqlConnection = new SqlConnection(connstr);
Perintah SqlCommand = new SqlCommand(sql,
connection.Open(
);
(dr.Read())
{
Response.ContentType = dr["imgtype"
].ToString();
Response.BinaryWrite
( (byte[]) dr["imgdata"]
}
connection.Close();
adalah Response.BinaryWrite bukan Response.Write.
Ini adalah program penyimpanan dan pembacaan untuk C# Winform. Silakan bandingkan sendiri perbedaannya! (Untuk kenyamanan, saya telah menyederhanakan bidang database menjadi dua: imgtitle dan imgdata.using
System;
using System.Drawing;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Windows.Forms;
usingSystem .Data;
menggunakan System.IO;
menggunakan System.Data.SqlClient
namespace WindowsApplication21
{
///
/// Deskripsi ringkasan Form1
///
kelas publik Form1 : System.Windows.Forms.Form
{
Sistem pribadi.Windows .Forms. Tombol tombol1;
///
/// Variabel perancang yang diperlukan
///
komponen System.ComponentModel.Container pribadi = null;
string pribadi ConnectionString = "Keamanan Terintegrasi=SSPI;Katalog Awal=;DataSource=localhost
;"
;
pribadi SqlCommand cmd = null;
Sistem pribadi.Windows.Forms.Button button2;
Sistem pribadi.Windows.Forms.PictureBox pic1;
Sistempribadi.Windows.Forms.OpenFileDialog
openFileDialog1
; Label label2;
private string nowId=null;
public Form1()
{
//
//
Diperlukanuntuk
dukungan Windows Forms Designer
//
InitializeComponent()
;
Panggilan InitializeComponent
//
}
///
/// Bersihkan semua sumber daya yang digunakan.
///
protected override void Dispose( bool membuang )
{
if (conn.State == ConnectionState.Open)
conn.Close();
if( membuang )
{
if (komponen != null)
{
komponen.Dispose(
)
;
base.Dispose( membuang );
}
#region Kode yang dihasilkan Perancang Formulir Windows
///
/// Perancang mendukung metode yang diperlukan - jangan gunakan editor kode untuk mengubah
/// konten metode ini.
///
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.pic1 = new System.Windows.Forms.PictureBox()
; Tombol();
ini.openFileDialog1 =Sistem.Windows.Forms.OpenFileDialog
(
) baru;
ini.label2
= Sistem.Windows.Forms.Label()
baru
;
.Lokasi = Sistem.Gambar.Titik baru(0, 40);
ini.button1.Nama = "tombol1";
ini.button1.Ukuran
= Sistem.Gambar.Ukuran(264, 48);
;
this.button1.Text = "Tambahkan gambar baru";
this.button1.Click
+
=
new System.EventHandler(this.button1_Click)
; 280, 8);
ini.pic1.Nama = "pic1";
this.pic1.Ukuran = Sistem.Gambar.Ukuran baru(344, 264);
ini.pic1.TabIndex
= 3
; /
// button2
//
this.button2.Location = new System.Drawing.Point(0, 104);
this.button2.Name = "button2.Size
= new System.Drawing.Size(264, 40 );
this.button2.TabIndex = 4;
this.button2.Text ="
Pulihkan gambar dari database";
this.button2.Click
+= new System.EventHandler(this.button2_Click
)
;
.Filter = ""File gambar (*.jpg, *.bmp, *.gif)|*.jpg|*.bmp|*.gif"";
//
// label2
//
this.label2.Location = sistem baru .Gambar.Titik(0, 152);
ini.label2.Nama = "label2";
ini.label2.Ukuran
=
Sistem.Gambar.Ukuran(264, 48)
;
Form1
//
this.AutoScaleBaseSize = Sistem.Gambar.Ukuran baru(6, 14);
ini.Ukuran Klien = Sistem.Gambar.Ukuranbaru
(632, 273);
] {
this.label2,
this.button2,
this.pic1,
this.button1});
this.Name = "Form1";
this.Text = "Form1"
; ;
this.ResumeLayout(false
}
#endregion
///
/// Titik masuk utama aplikasi.
///
[STAThread]
static void Main()
{
Application.Run(new Form1()
}
private void button1_Click(pengirim objek, System.EventArgs e)