當前位置:編程學習大全網 - 源碼下載 - 如何在SQL server數據庫中將文件保存為二進制記錄?(註意:不使用路徑),最好有源代碼。

如何在SQL server數據庫中將文件保存為二進制記錄?(註意:不使用路徑),最好有源代碼。

首先在SQL Server中建立壹個用於圖像存儲的數據庫表,其中ImageData列是圖像二進制數據存儲字段,ImageContentType列是圖像文件類型記錄字段。

ImageDescription列是保存圖像文件的描述字段,ImageSize列是保存圖像文件的長度字段,結構如下:

創建表[dbo]。[圖片商店](

[ImageID] [int] IDENTITY (1,1)不為空,

[ImageData] [image]空,

[image content type][varchar](50)COLLATE Chinese _ PRC _ CI _ AS NULL

[image description][varchar](200)COLLATE Chinese _ PRC _ CI _ AS NULL,

[ImageSize] [int] NULL

)on[primary]text image _ on[primary]在數據庫中保存圖片:使用System

使用系統。收藏;

使用系統。組件模型;

使用系統。數據;

使用系統。繪圖;

使用系統。Web

使用系統。Web . SessionState

使用系統。Web . UI

使用系統。Web . UI.WebControls

使用系統。Web . UI.HtmlControls

使用系統。木衛壹;

使用系統。Data . SqlClient命名空間上傳文件

{

///& lt;總結& gt

UpLoadImage的摘要說明。

///& lt;/summary & gt;

公共類UpLoadImage : System。網頁界面

{

受保護的系統。web . ui . web controls . button btnUpload;

受保護的系統。web . ui . web controls . label txt message;

受保護的系統。web . ui . web controls . textbox txt description;

受保護的系統。web . ui . html controls . html table table 1;

受保護的系統。web . ui . html controls . html input FILE UP _ FILE;//HtmlControl和WebControls控件對象

受保護的Int32文件長度= 0;

私有void Page_Load(對象發送方,系統。EventArgs e)

{

//將初始化頁面的用戶代碼放在這裏

如果(!頁面。IsPostBack)

{

}

}

#區域Web窗體設計器生成的代碼

覆蓋受保護的void OnInit(EventArgs e)

{

//

//CODEGEN:ASP.NET Web窗體設計器需要此調用。

//

initialize component();

基地。on init(e);

}

///& lt;總結& gt

///設計器支持所需的方法-不要修改

///使用代碼編輯器顯示此方法的內容。

///& lt;/summary & gt;

私有void InitializeComponent()

{

this.btnUpload.Click +=新系統。EventHandler(this . btnupload _ Click);

這個。負荷+=新系統。EventHandler(this。page _ Load);}

# end region private void btnUpload _ Click(對象發送方,系統。EventArgs e)

{

HttpPostedFile UpFile = this。UP_FILE。PostedFile//HttpPostedFile對象,用於讀取圖像文件屬性。

FileLength = UpFile。ContentLength//記錄文件長度

嘗試

{

if(文件長度== 0)

{//當文件長度為零時

短信。Text = " & ltb & gt請選擇您要上傳的文件

}

其他

{

Byte[] FileByteArray =新字節[文件長度];//圖像文件臨時存儲字節數組。

Stream StreamObject = UpFile。InputStream//建立數據流對象。

//讀取鏡像文件數據,其中FileByteArray為數據存儲體,0為數據指針位置,FileLnegth為數據長度。

StreamObjectRead(FileByteArray,0,file length);

//建立SQL Server鏈接

SqlConnection Con = new SqlConnection(" uid = sa;pwd =;初始目錄= EE數據源= 127 . 0 . 0 . 1;連接超時= 90”);

string SqlCmd = " INSERT INTO ImageStore(ImageData,ImageContentType,ImageDescription,ImageSize)值(@Image,@ContentType,@ImageDescription,@ ImageSize)";

SqlCommand cmd obj = new SqlCommand(SqlCmd,Con);

CmdObj。參數. Add("@Image ",SqlDbType。二進制,文件長度)。Value = FileByteArray

CmdObj。參數. Add("@ContentType ",SqlDbType。VarChar,50)。Value = UpFile。ContentType//記錄文件類型

//上傳其他單表數據記錄。

CmdObj。參數. Add("@ImageDescription ",SqlDbType。VarChar,200)。值= txtDescription。文本;

//記錄文件長度,讀取時使用。

CmdObj。參數. Add("@ImageSize ",SqlDbType。BigInt,8)。Value = UpFile。ContentLength

con . Open();

CmdObj。ExecuteNonQuery();

con . Close();

短信。Text = " & ltp & gt& ltb & gt好吧!您已經成功上傳了您的圖片

}

}

catch(例外ex)

{

短信。Text = ex。message . ToString();

}

} }

}

讀取數據庫中的圖片數據並顯示:使用系統;

使用系統。收藏;

使用系統。組件模型;

使用系統。數據;

使用系統。繪圖;

使用系統。Web

使用系統。Web . SessionState

使用系統。Web . UI

使用系統。Web . UI.WebControls

使用系統。Web . UI.HtmlControls

使用系統。木衛壹;

使用系統。Data . SqlClient命名空間上傳文件

{

///& lt;總結& gt

ReadImage的摘要描述。

///& lt;/summary & gt;

公共類閱讀圖像:系統。網頁界面

{

私有void Page_Load(對象發送方,系統。EventArgs e)

{

//將初始化頁面的用戶代碼放在這裏

如果(!頁面。IsPostBack)

{

字符串id =請求。query string[" ImgID "];//獲取ID if (id!= " " & amp& ampid!= null & amp& ampid!=字符串。空的)

{

show image(id);

}

}

} #區域Web表單設計器生成的代碼

覆蓋受保護的void OnInit(EventArgs e)

{

//

//CODEGEN:ASP.NET Web窗體設計器需要此調用。

//

initialize component();

基地。on init(e);

}

///& lt;總結& gt

///設計器支持所需的方法-不要修改

///使用代碼編輯器顯示此方法的內容。

///& lt;/summary & gt;

私有void InitializeComponent()

{

這個。負荷+=新系統。EventHandler(this。page _ Load);}

#endregion public void ShowImage(字符串id)

{

int ImgID = Convert。toint 32(id);//ImgID是圖片ID。

//建立數據庫鏈接

SqlConnection Con = new SqlConnection(" uid = sa;pwd =;初始目錄= EE數據源= 127 . 0 . 0 . 1;連接超時= 90”);

string SqlCmd = " SELECT * FROM ImageStore WHERE ImageID = @ ImageID ";

SqlCommand cmd obj = new SqlCommand(SqlCmd,Con);

CmdObj。參數. Add("@ImageID ",SqlDbType。Int)。Value = ImgID

嘗試

{

con . Open();

SqlDataReader SqlReader = CmdObj。ExecuteReader();

SqlReader。read();

回應。content type =(string)SQL reader[" image content type "];//設置輸出文件類型

//輸出圖像文件二進制數系統

回應。output stream . Write((byte[])SQL reader[" ImageData "],0,(int)SQL reader[" ImageSize "]);

回應。end();

con . Close();

}

捕捉

{

回應。寫(" & lt腳本& gtAlert('此圖不存在');& lt/script >);

返回;

} }

}

}

  • 上一篇:java培訓課程表?
  • 下一篇:什麽是漲幅
  • copyright 2024編程學習大全網