程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> ASP.NET下向SQLServer2008導入文件實例操作辦法

ASP.NET下向SQLServer2008導入文件實例操作辦法

編輯:MSSQL

ASP.NET下向SQLServer2008導入文件實例操作辦法。本站提示廣大學習愛好者:(ASP.NET下向SQLServer2008導入文件實例操作辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是ASP.NET下向SQLServer2008導入文件實例操作辦法正文


ASP.NET向SQL Server導入文件重要用到FileUpload控件的FileBytes屬性。該屬性從FileUpload控件所指定的文件前往一個字節數組 。
1.數據庫預備
為了便利年夜家可以或許懂得,這裡我們只設計兩個字段,一個是文件類型字段,字段名為FileType,另外一個是寄存文件內容字段,字段名為FileContent。創立數據庫

,數據庫名為VarFile,語句以下:
CREATE DATABASE VARFILE
GO
創立表,表名為FileInOut,語句以下:
USE VARFILE
GO
CREATE TABLE FILEINTOU
(
FileType nvarchar(30) not null,
FileContent varbinary(max) null
)
2.添加控件
運轉VS2008並新建一個網站,在頁面Default.aspx中添加一個FileUpload控件,ID 為FileUpload1.同時添加三個Button按鈕,ID分離為fileUp和fileLoad。Text屬性分離設置為“上傳文件”和“下載文件”。

3.添加代碼

(1)添加定名空間,由於和SQL Server數據庫銜接,所以添加using System.Data.Sqlclient和using System.Data定名空間。又由於要設置輸入流的HTTP的字符集為"gb2312"字符編碼,所以添加using System.Text定名空間。同時又由於要把導出文件強類型化為字符串,所以添加using System.Collections.Specialized定名空間。

(2)添加“上傳文件”按鈕的事宜代碼。當單擊“上傳文件”按鈕後,獲得FileUpload控件所選擇的文件的文件類型和文件的字節數組拔出數據庫中。切換到設計視圖,雙擊“上傳文件”按鈕,添加"上傳文件"按鈕事宜代碼,代碼以下:

protected void fileUp_Click(object sender,EventArgs e)
{
if(FileUpload1.FileName==string.Empty)
{
Response.Write("<script>altert(‘請選摘要上傳的文件')</script>");
return;
}
string mailto:connstr=@%22Data Source=69F638102711447\SQL2008;Initial Catalog=VarFile;Integrated Security=Ture"; //數據庫銜接字符串
string the Selected=FileUpload1.FileName; //獲得上傳文件的後綴名
string extension=theSelected.Substring(theSelected.LastIndexOf(".")).ToLower();
if(CheckFileType(extension)) //假如有指定的文件類型
{

string contentType=GetContentType(extension);
string sqlstr="insert into FileInOut values(@FileType,@FileCount)"; //上傳文件的SQL語句
string sqlstrclear="truncate table FileInOut"; //清空數據庫SQL語句
SqlConnection con=new SqlConnection(connstr); //實例化數據庫銜接對象
SqlCommand cmd=new SqlCommand(sqlstr,con); //實例化上傳文件SQL敕令
SqlCommand cmdclear=new SqlCommand(sqlstrclear,con); //實例化清空數據庫SQL敕令
//界說問價類型參數
cmd.Parameters.Add(new SqlParameter("@FileType”,SlqDbType.NvarChar,30));
cmd.Parameters["@FileType"].Value=contentType; //界說文件內容參數
cmd.Parameters.Add(new SqlParameter("@FileCount",SqlDbType.NVarChar,30)); //將文件轉化為字節數組作為@FileCount的值
cmd.Parameters["@FileCount"].Value=FileUpload1.FileBytes;
con.Open();
cmdclear.ExecuteNonQuery(); //履行清空數據庫敕令
cmd.ExecuteNonQuery(); //履行上傳文件敕令
}
}

(3)添加獲得文件類型和取得文件導出方法的函數辦法。起首檢查所要上傳文件類型能否在指定問價類型內,假如在,則可以直接導入文件,然後依據文件類型

獲得此文件導出方法並寄存在FileType字段中,代碼以下:

public static bool CheckFileType(string type)
{
StringDictionary sd=new StringDictionary(); //實例化聚集StringDictionary類
sd.Add(".doc","application/msword");
sd.Add(".ppt","application/vnd.ms-powerpoint");
sd.Add(".xsl","application/vnd.ms-excel");
sd.Add(".rtf","application/msword");
sd.Add(".html","text/html");
sd.Add(".htm","text/html");
sd.Add(".txt","text/plain");
sd.Add(".pdf","application/pdf");
return sd.ContainsKey(type); //肯定StringDictionary能否包括特定鍵
}

public static string GetContentType(string extension) //獲得輸入文件方法
{StringDictionary sd=new StringDictionary();
sd.Add(".doc","application/msword");
sd.Add(".ppt","application/vnd.ms-powerpoint");
sd.Add(".xsl","application/vnd.ms-excel");
sd.Add(".rtf","application/msword");
sd.Add(".html","text/html");
sd.Add(".htm","text/html");
sd.Add(".txt","text/plain");
sd.Add(".pdf","application/pdf");
return sd[extension]; //前往對應鍵的值
}

(4)上傳文件,選擇一個pdf文件,單擊"上傳文件"按鈕後,翻開數據庫中的FileInOut表,如圖所示可以看到。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved