亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

C# 文件保存到數據庫中或者從數據庫中讀取文件

2024-07-10 13:20:38
字體:
來源:轉載
供稿:網友
其實,方法非常的簡單,只是可能由于這些朋友剛剛開始編程不久,一時沒有找到方法而已。
下面介紹一下使用C#來完成此項任務。
首先,介紹一下保存文件到數據庫中。
將文件保存到數據庫中,實際上是將文件轉換成二進制流后,將二進制流保存到數據庫相應的字段中。在SQL Server中該字段的數據類型是Image,在Access中該字段的數據類型是OLE對象。

復制代碼 代碼如下:


//保存文件到SQL Server數據庫中
FileInfo fi=new FileInfo(fileName);
FileStream fs=fi.OpenRead();
byte[] bytes=new byte[fs.Length];
fs.Read(bytes,0,Convert.ToInt32(fs.Length));
SqlCommand cm=new SqlCommand();
cm.Connection=cn;
cm.CommandType=CommandType.Text;
if(cn.State==0) cn.Open();
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
spFile.Value=bytes;
cm.Parameters.Add(spFile);
cm.ExecuteNonQuery()
//保存文件到Access數據庫中
FileInfo fi=new FileInfo(fileName);
FileStream fs=fi.OpenRead();
byte[] bytes=new byte[fs.Length];
fs.Read(bytes,0,Convert.ToInt32(fs.Length));
OleDbCommand cm=new OleDbCommand();
cm.Connection=cn;
cm.CommandType=CommandType.Text;
if(cn.State==0) cn.Open();
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
OleDbParameter spFile=new OleDbParameter("@file",OleDbType.Binary);
spFile.Value=bytes;
cm.Parameters.Add(spFile);
cm.ExecuteNonQuery()
//保存客戶端文件到數據庫
sql="update t_mail set attachfilename=@attachfilename,attachfile=@attachfile where mailid="+mailid;
myCommand = new SqlCommand(sql, new SqlConnection(ConnStr));
string path = fl_name.PostedFile.FileName;
string filename=path.Substring(path.LastIndexOf("http://")+1,path.Length-path.LastIndexOf("http://")-1);
myCommand.Parameters.Add("@attachfilename",SqlDbType.VarChar);
myCommand.Parameters["@attachfilename"].Value=filename;
myCommand.Parameters.Add("@attachfile",SqlDbType.Image);
Stream fileStream = fl_name.PostedFile.InputStream;
int intFileSize = fl_name.PostedFile.ContentLength;
byte[] fileContent = new byte[intFileSize];
int intStatus = fileStream.Read(fileContent,0,intFileSize); //文件讀取到fileContent數組中
myCommand.Parameters["@attachfile"].Value=((byte[])fileContent);
fileStream.Close();
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();


代碼中的fileName是文件的完整名稱,tableName是要操作的表名稱,fieldName是要保存文件的字段名稱。
兩段代碼實際上是一樣的,只是操作的數據庫不同,使用的對象不同而已。
接著,在說說將文件從數據庫中讀取出來,只介紹從SQL Server中讀取。

復制代碼 代碼如下:


SqlDataReader dr=null;
SqlConnection objCn=new SqlConnection();
objCn.ConnectionString="Data Source=(local);User ID=sa;Password=;Initial Catalog=Test";
SqlCommand cm=new SqlCommand();
cm.Connection=cn;
cm.CommandType=CommandType.Text;
cm.CommandText="select "+fieldName+" from "+tableName+" where ID=1";
dr=cm.ExecuteReader();
byte[] File=null;
if(dr.Read())
{
File=(byte[])dr[0];
}
FileStream fs;
FileInfo fi=new System.IO.FileInfo(fileName);
fs=fi.OpenWrite();
fs.Write(File,0,File.Length);
fs.Close();


上面的代碼是將保存在數據庫中的文件讀取出來并保存文fileName指定的文件中。
在使用上面的代碼時,別忘了添加System.Data.SqlClient和System.IO引用。
修改:
將讀文件的下面部分的代碼

復制代碼 代碼如下:


FileStream fs;
FileInfo fi=new System.IO.FileInfo(fileName);
fs=fi.OpenWrite();
fs.Write(File,0,File.Length);
fs.Close();
修改為
FileStream fs=new FileStream(fileName,FileMode.CreateNew);
BinaryWriter bw=new BinaryWriter(fs);
bw.Write(File,0,File.Length);
bw.Close();
fs.Close();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九精品在线观看| 国产精品男人爽免费视频1| 亚洲毛片在线看| 57pao成人永久免费视频| 美女国内精品自产拍在线播放| 国产精品成av人在线视午夜片| 国产精品一区二区三区毛片淫片| 国产精品视频区| 亚洲r级在线观看| 国产精品对白刺激| 亚洲福利视频久久| 91久久综合亚洲鲁鲁五月天| 自拍偷拍免费精品| 青青草国产精品一区二区| 日韩精品中文在线观看| 成人在线视频网站| 精品欧美国产一区二区三区| 国产精品久久久久久久久久免费| 国产精品88a∨| 精品视频久久久久久久| 亚洲天堂av电影| 亚洲bt欧美bt日本bt| 69av成年福利视频| 久热99视频在线观看| 啪一啪鲁一鲁2019在线视频| 亚洲人成伊人成综合网久久久| 2019中文字幕在线免费观看| 欧美色xxxx| 亚洲精品aⅴ中文字幕乱码| 大桥未久av一区二区三区| 91在线精品视频| 黄色成人在线免费| 亚洲性生活视频| 亚洲国产精品成人va在线观看| 日韩网站免费观看高清| 日韩av一区在线观看| 日韩精品免费在线视频观看| 亚洲xxxx在线| 精品国产福利在线| xxav国产精品美女主播| 久久精品电影一区二区| 欧美精品久久久久久久久| 国产精品福利在线观看| 亚洲成人精品视频| 久久久久久久久久国产| 欧美综合激情网| 日韩美女在线播放| 亚洲色图校园春色| 欧美高清电影在线看| 亚洲人精选亚洲人成在线| 欧美激情小视频| 中文日韩在线视频| 色综合色综合网色综合| 国产精品一区二区电影| 亚洲老司机av| 国产欧美欧洲在线观看| 国产主播在线一区| 亚洲国产另类 国产精品国产免费| 亚洲综合小说区| 国产一区二区三区欧美| 亚洲精品有码在线| 91美女片黄在线观| 国产精品 欧美在线| 精品自拍视频在线观看| 久久综合国产精品台湾中文娱乐网| 中文字幕日韩高清| 久久69精品久久久久久国产越南| 国产精品入口免费视| 国产成人精品视频在线| 最近中文字幕mv在线一区二区三区四区| 日本不卡视频在线播放| 国产精品午夜一区二区欲梦| 91视频免费网站| 欲色天天网综合久久| 国产又爽又黄的激情精品视频| 欧美日韩国产精品一区二区不卡中文| 九九九久久国产免费| 成人精品久久av网站| 日韩专区中文字幕| 日韩精品免费在线| 国产成人涩涩涩视频在线观看| 欧美日韩综合视频网址| 91香蕉嫩草神马影院在线观看| 亚洲精品国产免费| 日韩在线视频观看正片免费网站| 国产精品国产三级国产aⅴ浪潮| 亚洲女人天堂网| 性亚洲最疯狂xxxx高清| 欧美午夜精品久久久久久浪潮| 亚洲国产精品yw在线观看| 5566日本婷婷色中文字幕97| 久久香蕉国产线看观看网| 精品性高朝久久久久久久| 日韩成人xxxx| 亚洲欧美日韩一区二区三区在线| 久久国产精品久久久久| 欧美精品18videos性欧| 91av福利视频| 久久99精品久久久久久噜噜| 国产91精品在线播放| 国产一区二区三区久久精品| 国产精品一区二区av影院萌芽| 国产精品一久久香蕉国产线看观看| 日本午夜精品理论片a级appf发布| 国产精品91久久久| 亚洲最大的网站| 精品久久久久久| 一区二区三区动漫| 欧美黄色免费网站| 国产乱肥老妇国产一区二| 日韩在线视频二区| 欧美成人免费观看| 国产又爽又黄的激情精品视频| 国产一区二区三区日韩欧美| 91精品视频免费| 欧美一区二区三区四区在线| 久久久久女教师免费一区| 欧美午夜美女看片| 欧美黑人xxxⅹ高潮交| 欧美在线免费视频| 日韩欧美亚洲综合| 一区二区三区国产在线观看| 久久91亚洲精品中文字幕| 久久久久久国产三级电影| 久久久97精品| 久久人人97超碰精品888| 欧美成人在线影院| 宅男66日本亚洲欧美视频| 国内精品久久久久伊人av| 久久精品国产视频| 亚洲综合色激情五月| 少妇av一区二区三区| 久久久精品免费| 91日本在线视频| 日韩亚洲欧美成人| 亚洲天堂第一页| 日韩视频中文字幕| 91精品国产色综合久久不卡98| 日韩av日韩在线观看| 亚洲综合大片69999| 亚洲最大成人免费视频| 欧美视频免费在线| 亚洲国产精品悠悠久久琪琪| 欧美精品激情视频| 亚洲免费av电影| 色综合导航网站| 成人中文字幕在线观看| 欧美视频二区36p| 91久久精品国产91性色| 久久久久久国产精品三级玉女聊斋| 国产日本欧美在线观看| 亚洲va男人天堂| 久久国内精品一国内精品| 中文字幕精品av| 影音先锋欧美在线资源| 亚洲性视频网站| 欧美成人午夜激情在线| 色播久久人人爽人人爽人人片视av| 日韩av最新在线| 青青久久av北条麻妃黑人| 欧美日产国产成人免费图片| 亚洲欧洲偷拍精品| 精品国产一区二区三区在线观看| 日韩在线视频免费观看高清中文|