国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

C# 文件保存到數(shù)據(jù)庫(kù)中或者從數(shù)據(jù)庫(kù)中讀取文件

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:44:30
文檔

C# 文件保存到數(shù)據(jù)庫(kù)中或者從數(shù)據(jù)庫(kù)中讀取文件

C# 文件保存到數(shù)據(jù)庫(kù)中或者從數(shù)據(jù)庫(kù)中讀取文件:其實(shí),方法非常的簡(jiǎn)單,只是可能由于這些朋友剛剛開(kāi)始編程不久,一時(shí)沒(méi)有找到方法而已。下面介紹一下使用C#來(lái)完成此項(xiàng)任務(wù)。 首先,介紹一下保存文件到數(shù)據(jù)庫(kù)中。 將文件保存到數(shù)據(jù)庫(kù)中,實(shí)際上是將文件轉(zhuǎn)換成二進(jìn)制流后,將二進(jìn)制流保存到數(shù)據(jù)庫(kù)相應(yīng)的字段中
推薦度:
導(dǎo)讀C# 文件保存到數(shù)據(jù)庫(kù)中或者從數(shù)據(jù)庫(kù)中讀取文件:其實(shí),方法非常的簡(jiǎn)單,只是可能由于這些朋友剛剛開(kāi)始編程不久,一時(shí)沒(méi)有找到方法而已。下面介紹一下使用C#來(lái)完成此項(xiàng)任務(wù)。 首先,介紹一下保存文件到數(shù)據(jù)庫(kù)中。 將文件保存到數(shù)據(jù)庫(kù)中,實(shí)際上是將文件轉(zhuǎn)換成二進(jìn)制流后,將二進(jìn)制流保存到數(shù)據(jù)庫(kù)相應(yīng)的字段中

其實(shí),方法非常的簡(jiǎn)單,只是可能由于這些朋友剛剛開(kāi)始編程不久,一時(shí)沒(méi)有找到方法而已。
下面介紹一下使用C#來(lái)完成此項(xiàng)任務(wù)。
首先,介紹一下保存文件到數(shù)據(jù)庫(kù)中。
將文件保存到數(shù)據(jù)庫(kù)中,實(shí)際上是將文件轉(zhuǎn)換成二進(jìn)制流后,將二進(jìn)制流保存到數(shù)據(jù)庫(kù)相應(yīng)的字段中。在SQL Server中該字段的數(shù)據(jù)類型是Image,在Access中該字段的數(shù)據(jù)類型是OLE對(duì)象。
代碼如下:
//保存文件到SQL Server數(shù)據(jù)庫(kù)中
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數(shù)據(jù)庫(kù)中
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()
//保存客戶端文件到數(shù)據(jù)庫(kù)
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("\\")+1,path.Length-path.LastIndexOf("\\")-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數(shù)組中
myCommand.Parameters["@attachfile"].Value=((byte[])fileContent);
fileStream.Close();
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();

代碼中的fileName是文件的完整名稱,tableName是要操作的表名稱,fieldName是要保存文件的字段名稱。
兩段代碼實(shí)際上是一樣的,只是操作的數(shù)據(jù)庫(kù)不同,使用的對(duì)象不同而已。
接著,在說(shuō)說(shuō)將文件從數(shù)據(jù)庫(kù)中讀取出來(lái),只介紹從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();

上面的代碼是將保存在數(shù)據(jù)庫(kù)中的文件讀取出來(lái)并保存文fileName指定的文件中。
在使用上面的代碼時(shí),別忘了添加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();

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

C# 文件保存到數(shù)據(jù)庫(kù)中或者從數(shù)據(jù)庫(kù)中讀取文件

C# 文件保存到數(shù)據(jù)庫(kù)中或者從數(shù)據(jù)庫(kù)中讀取文件:其實(shí),方法非常的簡(jiǎn)單,只是可能由于這些朋友剛剛開(kāi)始編程不久,一時(shí)沒(méi)有找到方法而已。下面介紹一下使用C#來(lái)完成此項(xiàng)任務(wù)。 首先,介紹一下保存文件到數(shù)據(jù)庫(kù)中。 將文件保存到數(shù)據(jù)庫(kù)中,實(shí)際上是將文件轉(zhuǎn)換成二進(jìn)制流后,將二進(jìn)制流保存到數(shù)據(jù)庫(kù)相應(yīng)的字段中
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 午夜大片在线观看 | 欧美精品在线免费观看 | 在线国产视频观看 | 韩日视频在线 | 久久久久久国产精品免费 | 欧美一区二区三区免费播放 | 亚洲欧美在线视频观看 | 久久精品国产999久久久 | 精品欧美成人高清视频在线观看 | 一本综合久久国产二区 | 国产成人麻豆精品video | 日本高清一区二区三区不卡免费 | 欧美福利专区 | 国产精品久久久久久久久久久不卡 | 中文字幕精品一区二区精品 | 亚洲一区二区在线 | 久久中文字幕久久久久91 | 日韩免费一区二区三区在线 | 99视频九九精品视频在线观看 | 国产成人久久精品激情 | 久久久久无码国产精品一区 | 国产 欧美 日韩 在线 | 免费国产高清视频 | 欧美精品国产综合久久 | 国产一区二区三区免费在线观看 | 国产一区二区三区成人久久片 | 日韩在线视频二区 | 日本欧美国产精品第一页久久 | 国模私拍一区二区 | 亚洲欧美日韩综合在线 | 狠狠色狠狠色综合日日不卡 | 99久久精品国产国产毛片 | 亚洲欧美日韩中另类在线 | 亚洲欧洲日韩 | 伊人久久综合成人网小说 | 免费亚洲网站 | 亚洲国产精品热久久 | 欧美1区二区三区公司 | 91香蕉国产亚洲一区二区三区 | 久久99精品一久久久久久 | 亚洲精品乱码久久久久久v 亚洲精品免费观看 |