<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 22:44:30
        文檔

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

        C# 文件保存到數據庫中或者從數據庫中讀取文件:其實,方法非常的簡單,只是可能由于這些朋友剛剛開始編程不久,一時沒有找到方法而已。下面介紹一下使用C#來完成此項任務。 首先,介紹一下保存文件到數據庫中。 將文件保存到數據庫中,實際上是將文件轉換成二進制流后,將二進制流保存到數據庫相應的字段中
        推薦度:
        導讀C# 文件保存到數據庫中或者從數據庫中讀取文件:其實,方法非常的簡單,只是可能由于這些朋友剛剛開始編程不久,一時沒有找到方法而已。下面介紹一下使用C#來完成此項任務。 首先,介紹一下保存文件到數據庫中。 將文件保存到數據庫中,實際上是將文件轉換成二進制流后,將二進制流保存到數據庫相應的字段中

        其實,方法非常的簡單,只是可能由于這些朋友剛剛開始編程不久,一時沒有找到方法而已。
        下面介紹一下使用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("\\")+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數組中
        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();

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        C# 文件保存到數據庫中或者從數據庫中讀取文件:其實,方法非常的簡單,只是可能由于這些朋友剛剛開始編程不久,一時沒有找到方法而已。下面介紹一下使用C#來完成此項任務。 首先,介紹一下保存文件到數據庫中。 將文件保存到數據庫中,實際上是將文件轉換成二進制流后,將二進制流保存到數據庫相應的字段中
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲无码精品浪潮| 中文字幕免费在线看线人 | 亚洲国产第一站精品蜜芽| 亚洲精品黄色视频在线观看免费资源| 国产极品粉嫩泬免费观看| 亚洲综合精品成人| 免费看的成人yellow视频| 亚洲av无码一区二区三区天堂| 日韩高清在线高清免费| 特级毛片A级毛片100免费播放| 亚洲av无码天堂一区二区三区| 国产免费久久精品99久久| 国产成A人亚洲精V品无码性色| 日本免费人成网ww555在线| 777亚洲精品乱码久久久久久 | 污视频在线免费观看| 亚洲色偷偷偷网站色偷一区| 3d成人免费动漫在线观看 | 国产亚洲福利精品一区二区| 亚洲国产成人久久综合碰| 中文精品人人永久免费| 中文字幕亚洲精品资源网| 成全视频在线观看免费高清动漫视频下载 | 免费国产小视频在线观看| kk4kk免费视频毛片| 亚洲欧洲免费视频| 成人性生免费视频| 一级白嫩美女毛片免费| 亚洲最大福利视频网站| 日韩免费三级电影| 久久爰www免费人成| 国产精品亚洲综合久久| AV在线亚洲男人的天堂| h在线观看视频免费网站| 在线亚洲v日韩v| 亚洲日本中文字幕| 免费一区二区三区四区五区| 久久国产乱子免费精品| 亚洲AV一区二区三区四区| 国产亚洲人成无码网在线观看| 成人免费a级毛片无码网站入口 |