SQL Server มีประเภทข้อมูลพิเศษ: รูปภาพ ซึ่งเป็นประเภทที่มีข้อมูลไบนารี ตัวอย่างด้านล่างแสดงวิธีการใส่ข้อความหรือรูปภาพลงในฐานข้อมูล ในบทความนี้ เราจะมาดูวิธีการจัดเก็บและอ่านรูปภาพใน SQL Server
1. สร้างตาราง:
สร้างตารางด้วยโครงสร้างนี้ใน SQL SERVER:
2. จัดเก็บรูปภาพในฐานข้อมูล SQL SERVER
เพื่อจัดเก็บรูปภาพเหล่านั้นในตาราง คุณต้องอัปโหลดรูปภาพเหล่านั้นไปยังเว็บเซิร์ฟเวอร์ของคุณก่อน คุณสามารถพัฒนาฟอร์มเว็บซึ่งใช้ในการนำเข้ารูปภาพจากตัวควบคุมเว็บกล่องข้อความในไคลเอนต์ . เว็บเซิร์ฟเวอร์ของคุณปรากฏขึ้น ตั้งค่าคุณสมบัติ encType ของคุณเป็น: myltipart/formdata.
Stream imgdatastream = File1.PostedFile.InputStream;
int imgdatalen = File1.PostedFile.ContentLength;
string imgtype = File1.PostedFile.ContentType;
string imgtitle = TextBox1.Text
; ไบต์ [imgdatalen];
int n = imgdatastream.Read(imgdata, 0, imgdatalen);
string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"]
;
คำสั่ง SqlCommand = new SqlCommand
("INSERT INTO ImageStore(imgtitle, imgtype, imgdata)
VALUES (@imgtitle, @imgtype, @imgdata)", การเชื่อมต่อ );
SqlParameter paramTitle = new SqlParameter
("@imgtitle", SqlDbType.VarChar, 50 ) ;
paramTitle.Value = imgtitle;
command.Parameters.Add( paramTitle);
SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image = imgdata;
command.Parameters.Add
(
paramData);
ใหม่ SqlParameter( "@imgtype", SqlDbType.VarChar, 50 );
paramType.Value = imgtype;
command.Parameters.Add( paramType )
;
int numRowsAffected = command.ExecuteNonQuery(
) 3.
อ่านต่อจากฐานข้อมูล
ตอนนี้ให้เราอ่านข้อมูลที่เราใส่จาก SQL Server!
โมฆะส่วนตัว Page_Load (ผู้ส่งวัตถุ System.EventArgs e)
{
string imgid =Request.QueryString
["imgid"];
string connstr=((NameValueCollection)
Context.GetConfig("appSettings"))["connstr"];
"
เลือก imgdata, imgtype จาก ImageStore โดยที่ id = " + imgid;
การเชื่อมต่อ SqlConnection (connstr);
คำสั่งSqlCommand
= new SqlCommand (การเชื่อมต่อ)
;
(dr.Read())
{
Response.ContentType = dr["imgtype"].ToString();
Response.BinaryWrite
(
(
ไบต์
[]) dr["imgdata"] );
คือ Response.BinaryWrite แทน Response.Write
นี่คือโปรแกรมจัดเก็บและอ่านสำหรับ C# Winform กรุณาเปรียบเทียบความแตกต่างด้วยตัวคุณเอง! (เพื่อความสะดวกฉันได้ทำให้ฟิลด์ฐานข้อมูลง่ายขึ้นเป็นสอง: imgtitle และ imgdata
โดยใช้ System;
การใช้ System. Drawing;
การใช้ System.Collections;
การใช้ System.ComponentModel;
การใช้ System.Windows.Forms;
การใช้ System. .Data;
การใช้ System.IO;
การใช้ System.Data.SqlClient;
namespace WindowsApplication21
{
///
/// คำอธิบายโดยย่อของ Form1
///
คลาสสาธารณะ Form1 : System.Windows.Forms.Form
{
private System.Windows .Forms. ปุ่ม button1;
///
/// ตัวแปรตัวออกแบบที่จำเป็น
///
ส่วนประกอบ System.ComponentModel.Container = null;
สตริง
ส่วนตัว ConnectionString = "Integrated Security=SSPI;Initial Catalog=;DataSource=localhost;"
;
SqlCommand ส่วนตัว = null;
System.Windows.Forms.Button
ส่วนตัว
=
null
;
Label2;
private string nowId=null;
public Form1()
{
//
// จำเป็นสำหรับ Windows Forms Designer support
//
InitializeComponent();
conn = new SqlConnection(ConnectionString);
//
/ / TODO: เพิ่มโค้ด Constructor ใด ๆ หลัง InitializeComponent call
//
}
///
/// ล้างทรัพยากรใด ๆ ที่ใช้งานอยู่
///
การแทนที่การป้องกันเป็นโมฆะ (การกำจัดบูล)
{
if (conn.State == ConnectionState.Open)
conn.Close();
if(
disposing )
{
if (ส่วนประกอบ != null)
{
ส่วนประกอบ.Dispose()
;
base.Dispose( disposing );
}
#region Windows Form Designer สร้างโค้ด
///
/// ผู้ออกแบบสนับสนุนวิธีการที่จำเป็น - อย่าใช้ตัวแก้ไขโค้ดเพื่อแก้ไข
/// เนื้อหาของวิธีนี้
///
โมฆะส่วนตัว InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.pic1 = new System.Windows.Forms.PictureBox();
this.button2 = new System.Windows.Forms.
ปุ่ม(
);
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.label2
=
new System.Windows.Forms.Label();
this.SuspendLayout
();
.Location = System. Drawing.Point (0, 40) ใหม่ =
this.button1.Name = "button1";
this.button1.Size = new System. Drawing.Size (264, 48);
this.button1.TabIndex = 0 ;
this.button1.Text = "เพิ่มรูปภาพใหม่";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// pic1
//
this.pic1.Location = new System. Drawing.Point ( 280, 8);
this.pic1.Name = "
this.pic1.Size=
new System. Drawing.Size(344, 264);
this.pic1.TabIndex = 3
;
/
// button2
//
this.button2.Location = new System. Drawing.Point (0, 104);
this.button2.Name = "button2";
this.button2.Size = new System. Drawing.Size (264, 40 );
this.button2.TabIndex = 4;
this.button2.Text ="
กู้คืนรูปภาพจากฐานข้อมูล";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
//
openFileDialog1
.Filter = ""ไฟล์รูปภาพ (*.jpg, *.bmp, *.gif)|*.jpg|*.bmp|*.gif"";
//
// label2
//
this.label2.Location = ระบบใหม่ . Drawing.Point(0, 152);
this.label2.Name = "
this.label2.Size = new System. Drawing.Size(264, 48);
this.label2.TabIndex
= 5
; Form1
//
this.AutoScaleBaseSize = new System. Drawing.Size (6, 14);
this.ClientSize = new System. Drawing.Size (632, 273);
this.Controls.AddRange (ระบบใหม่ Windows.Forms. Control [ ] {
this.label2,
this.button2,
this.pic1,
this.button1});
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load) ;
this.ResumeLayout(false);
}
#endregion
///
/// จุดเริ่มต้นหลักของแอปพลิเคชัน
///
[STAThread]
โมฆะคงที่ Main()
{
Application.Run (new Form1 ());
}
โมฆะส่วนตัว button1_Click (ผู้ส่งวัตถุ System.EventArgs e)