中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

通過ADO.NET存取文件
來源:易賢網 閱讀:878 次 日期:2014-12-02 15:38:32
溫馨提示:易賢網小編為您整理了“通過ADO.NET存取文件”,方便廣大網友查閱!

有時我們需要把一些大的數據對象如圖片、可執行文件、視頻和文檔等數據存入數據庫。在MS SQL Server中,這要用到Image數據類型,可以保存多達2G的數據。以下給出一個通過ADO.NET和MS SQL Server實現的小小的例子。

先創建一個測試數據表。

在查詢分析器中輸入并執行以下語句:

Create table [imgtable](

[imgid] [int] IDENTITY(1,1) NOT NULL,

[imgname] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,

[imgData] [image] NULL,

PRIMARY KEY CLUSTERED

[imgid]

) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

這要在你所選的數據庫中就多了一個名叫imgtable的表。

VS中的代碼如下:

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.Data.SqlClient;

using System.IO;

namespace ADO_Demo

{

/// <summary>

/// Form1 的摘要說明。

/// </summary>

public class ADO_Demo : System.Windows.Forms.Form

{

private System.Windows.Forms.Button button1;

private System.Windows.Forms.Button button2;

private System.Windows.Forms.PictureBox pictureBox1;

private System.Windows.Forms.OpenFileDialog openFileDialog1;

private System.Windows.Forms.Button button3;

/// <summary>

/// 必需的設計器變量。

/// </summary>

private System.ComponentModel.Container components = null;

public ADO_Demo()

{

//

// Windows 窗體設計器支持所必需的

//

InitializeComponent();

//

// TODO: 在 InitializeComponent 調用后添加任何構造函數代碼

//

}

/// <summary>

/// 清理所有正在使用的資源。

/// </summary>

protected override void Dispose( bool disposing )

{

if( disposing )

{

if (components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}

#region Windows 窗體設計器生成的代碼

/// <summary>

/// 設計器支持所需的方法 - 不要使用代碼編輯器修改

/// 此方法的內容。

/// </summary>

private void InitializeComponent()

{

this.button1 = new System.Windows.Forms.Button();

this.button2 = new System.Windows.Forms.Button();

this.pictureBox1 = new System.Windows.Forms.PictureBox();

this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();

this.button3 = new System.Windows.Forms.Button();

this.SuspendLayout();

//

// button1

//

this.button1.Location = new System.Drawing.Point(368, 48);

this.button1.Name = "button1";

this.button1.Size = new System.Drawing.Size(104, 23);

this.button1.TabIndex = 0;

this.button1.Text = "保存圖片";

this.button1.Click += new System.EventHandler(this.button1_Click);

//

// button2

//

this.button2.Location = new System.Drawing.Point(368, 120);

this.button2.Name = "button2";

this.button2.Size = new System.Drawing.Size(104, 23);

this.button2.TabIndex = 1;

this.button2.Text = "顯示圖片";

this.button2.Click += new System.EventHandler(this.button2_Click);

//

// pictureBox1

//

this.pictureBox1.Location = new System.Drawing.Point(8, 16);

this.pictureBox1.Name = "pictureBox1";

this.pictureBox1.Size = new System.Drawing.Size(312, 288);

this.pictureBox1.TabIndex = 2;

this.pictureBox1.TabStop = false;

//

// openFileDialog1

//

this.openFileDialog1.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog1_FileOk);

//

// button3

//

this.button3.Location = new System.Drawing.Point(368, 200);

this.button3.Name = "button3";

this.button3.Size = new System.Drawing.Size(104, 23);

this.button3.TabIndex = 1;

this.button3.Text = "讀取文件并打開";

this.button3.Click += new System.EventHandler(this.button3_Click);

//

// ADO_Demo

//

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

this.ClientSize = new System.Drawing.Size(496, 317);

this.Controls.Add(this.pictureBox1);

this.Controls.Add(this.button2);

this.Controls.Add(this.button1);

this.Controls.Add(this.button3);

this.Name = "ADO_Demo";

this.Text = "ADO_Demo";

this.ResumeLayout(false);

}

#endregion

/// <summary>

/// 應用程序的主入口點。

/// </summary>

[STAThread]

static void Main()

{

application.Run(new ADO_Demo());

}

 

/// <summary>

/// 點擊打開文件對話框確定按鈕,將文件保存到數據庫中

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)

{

string filename = this.openFileDialog1.FileName;

SqlConnection conn = new SqlConnection("server=192.168.2.200;integrated security = sspi;database = northwind");

SqlCommand cmd = new SqlCommand("insert imgtable values(@imgname,@imgData)",conn);

SqlParameter pm = new SqlParameter("@imgname",SqlDbType.VarChar,100);

pm.Value = filename;

SqlParameter pm1 = new SqlParameter("@imgData",SqlDbType.Image);

FileStream fs = new FileStream(filename,FileMode.Open);

int len = (int)fs.Length;

byte[] fileData = new byte[len];

fs.Read(fileData,0,len);

fs.Close();

pm1.Value = fileData;

cmd.Parameters.Add(pm);

cmd.Parameters.Add(pm1);

conn.Open();

try

{

cmd.ExecuteNonQuery();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

}

private void button1_Click(object sender, System.EventArgs e)

{

this.openFileDialog1.ShowDialog();

}

/// <summary>

/// 從數據庫中讀取bitmap圖片并顯示

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button2_Click(object sender, System.EventArgs e)

{

SqlConnection conn = new SqlConnection("server=192.168.2.200;integrated security = sspi;database = northwind");

SqlCommand cmd = new SqlCommand("select * from imgtable where imgname like '%bmp%'",conn);

conn.Open();

SqlDataReader dr;

try

{

dr = cmd.ExecuteReader();

dr.Read();

System.Data.SqlTypes.SqlBinary sb = dr.GetSqlBinary(2);

//或byte[] imageData = (byte[])dr[2];

MemoryStream ms = new MemoryStream(sb.Value);//在內存中操作圖片數據

Bitmap bmp = new Bitmap(Bitmap.FromStream(ms));

this.pictureBox1.Image = bmp;

dr.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

}

/// <summary>

/// 讀取文件并保存到硬盤,然后打開文件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button3_Click(object sender, System.EventArgs e)

{

SqlConnection conn = new SqlConnection("server=192.168.2.200;integrated security = sspi;database = northwind");

SqlCommand cmd = new SqlCommand("select * from imgtable where imgname like '%doc'",conn);

conn.Open();

SqlDataReader dr;

try

{

dr = cmd.ExecuteReader();

dr.Read();

System.Data.SqlTypes.SqlBinary sb = dr.GetSqlBinary(2);

//或byte[] imageData = (byte[])dr[2];

//FileStream fs = new FileStream(@"C: emp.bmp",FileMode.Create);

string filename = @"C:" + System.IO.Path.GetFileName(dr.GetString(1));

FileStream fs = new FileStream(filename,FileMode.Create);

fs.Write(sb.Value,0,sb.Value.Length);

fs.Close();

//this.pictureBox1.Image = Image.FromFile(@"C: emp.bmp");

System.Diagnostics.Process.Start(filename);

dr.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

}

}

}

直接把整個文件讀取到內存中的數組里對于小文件來說是沒問題的,但如果是大文件,特別是大小都超過了物理內存的文件,可能會導致嚴重的內存問題,需要分段讀取,并分段寫到數據庫。

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:通過ADO.NET存取文件
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美午夜片欧美片在线观看| 亚洲影院在线| 影音先锋久久| 国产欧美日韩不卡免费| 国语自产精品视频在线看8查询8| 欧美日韩hd| 好吊一区二区三区| 亚洲欧美日韩国产一区二区三区| 欧美在线观看天堂一区二区三区| 欧美国产日本| 91久久午夜| 欧美高清视频一区二区三区在线观看 | 欧美伊久线香蕉线新在线| 欧美成人一区二免费视频软件| 国产日韩亚洲欧美| 久久国产精品久久久久久久久久| 国产伦理精品不卡| 午夜免费久久久久| 国产欧美一区二区精品仙草咪| 一区二区电影免费观看| 欧美视频你懂的| 一区二区三区www| 国产伦精品一区二区| 久久综合狠狠综合久久综青草| 在线观看视频一区二区| 欧美激情影院| 99国产精品久久久久久久久久| 欧美日韩在线播放一区| 久久天天狠狠| 在线观看91精品国产入口| 欧美激情第3页| 欧美一级电影久久| 国产日本精品| 欧美在线综合视频| 欧美色欧美亚洲另类二区 | 国产精品国产三级国产专播品爱网| 亚洲国产欧美不卡在线观看| 久久99伊人| 亚洲精品乱码久久久久| 中文高清一区| 狠狠色香婷婷久久亚洲精品| 一本久道久久综合狠狠爱| 欧美日韩亚洲一区二区| 久久久亚洲精品一区二区三区 | 久久久综合免费视频| 亚洲毛片av| 国产精品久久久久久久app| 久久久久久久高潮| 亚洲午夜伦理| 亚洲欧洲三级| 精品成人国产| 国产精品成人免费| 欧美成人69av| 裸体歌舞表演一区二区| 亚洲欧美精品伊人久久| 国产一区二区福利| 国产精品尤物福利片在线观看| 伊人久久亚洲影院| 国产精品国产一区二区| 久久天天躁狠狠躁夜夜av| 亚洲综合导航| 一本色道久久88综合亚洲精品ⅰ| 国产精品视频精品| 欧美激情按摩| 噜噜噜久久亚洲精品国产品小说| 欧美在线一区二区| 久久在精品线影院精品国产| 久久久综合精品| 免费高清在线视频一区·| 欧美精品三级日韩久久| 欧美视频日韩视频在线观看| 欧美三级第一页| 日韩网站在线| 亚洲欧美日本精品| 久久一区二区三区四区| 欧美精品97| 国产精品一区二区三区四区 | 久久资源av| 欧美经典一区二区三区| 欧美亚一区二区| 国产精品高清在线| 一区二区三区在线视频免费观看| 国内精品视频在线播放| 亚洲国产一区二区三区青草影视| 亚洲午夜视频在线| 久久久久久久综合日本| 欧美精品激情blacked18| 国产精品看片你懂得| 国产精品久久久久一区二区| 国内成+人亚洲+欧美+综合在线| 国产一区日韩欧美| 国产手机视频精品| 国产精品国产三级国产专播精品人| 欧美日韩国产综合视频在线| 欧美二区在线看| 欧美黄色影院| 欧美在线999| 欧美精品一区二区三区在线看午夜| 久久精品夜色噜噜亚洲aⅴ| 在线视频成人| 老色鬼久久亚洲一区二区| 亚洲欧美日韩视频二区| 一区二区成人精品| 亚洲国产婷婷| 在线播放亚洲| 久久精品青青大伊人av| 久久久精品国产99久久精品芒果| 亚洲综合成人在线| 亚洲国产精品久久久久婷婷884| 韩国成人精品a∨在线观看| 国产日产欧产精品推荐色 | 亚洲影视在线播放| 黄色成人在线| 国产精品xxxxx| 欧美精品一区三区在线观看| 久久综合色婷婷| 久久精品视频99| 欧美精品在线观看播放| 午夜国产精品影院在线观看| 国内精品99| 国产欧美日韩一区二区三区在线观看 | 亚洲高清免费视频| 亚洲丶国产丶欧美一区二区三区 | 久久一区亚洲| 久久久久九九视频| 欧美色欧美亚洲另类七区| 欧美日韩国产色站一区二区三区| 亚洲国产精品一区制服丝袜| 久久精品国产2020观看福利| 国产欧美一区二区三区在线老狼| 亚洲欧美精品| 国产精品久久久久久久浪潮网站 | 久久精品72免费观看| 亚洲欧美日本国产专区一区| 亚洲一区二区三区四区中文| 亚洲国产精品一区在线观看不卡| 亚洲综合成人在线| 欧美一级在线播放| 久久激情久久| 噜噜噜噜噜久久久久久91 | 国产一区二区三区丝袜| 国产人成一区二区三区影院| 国产一级一区二区| 在线精品视频免费观看| 噜噜爱69成人精品| 亚洲日本在线观看| 欧美午夜精品一区| 午夜在线不卡| 黄色资源网久久资源365| 久久久www成人免费毛片麻豆| 樱桃成人精品视频在线播放| 欧美jizzhd精品欧美喷水| 亚洲麻豆av| 国产精品久久久一区麻豆最新章节 | 国产精品一区二区三区四区五区| 国产一区二区三区黄视频| 亚洲国产美国国产综合一区二区| 一区电影在线观看| 免费短视频成人日韩| 国产精品视频| 欧美一区二区视频观看视频| 欧美激情国产精品| 国模私拍视频一区| 欧美精品亚洲精品| 羞羞色国产精品| 亚洲精品久久久久久一区二区| 欧美日韩色婷婷| 欧美中文字幕在线播放| 日韩一二三区视频| 国产精品永久| 美女脱光内衣内裤视频久久影院| 亚洲毛片视频| 国产精品揄拍500视频| 免费美女久久99| 中文成人激情娱乐网| 伊人久久婷婷色综合98网| 欧美午夜免费| 久久人人超碰| 亚洲人成在线观看一区二区| 欧美性理论片在线观看片免费| 中国成人在线视频| 欧美理论电影在线播放| 亚洲欧美国产视频| 欧美四级在线观看| 9i看片成人免费高清| 国产欧美精品一区二区色综合| 夜夜嗨av色综合久久久综合网| 麻豆av一区二区三区久久| 亚洲一区在线免费观看| 亚洲国产精品高清久久久| 国产精品久久久久永久免费观看| 欧美成人tv| 久久久综合网站| 午夜宅男欧美| 9l国产精品久久久久麻豆| 在线精品国产成人综合| 国产综合欧美| 亚洲手机在线| 亚洲欧洲在线看| 欧美日韩亚洲一区二区三区在线|