<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
        主站蜘蛛池模板: 蜜桃精品免费久久久久影院| 久9久9精品免费观看| AV无码免费永久在线观看| 亚洲欧洲第一a在线观看| 99久久国产精品免费一区二区 | 免费无码又黄又爽又刺激| 亚洲自偷精品视频自拍| 真人做人试看60分钟免费视频| 亚洲ts人妖网站| 夫妻免费无码V看片| 国内成人精品亚洲日本语音| 又粗又大又硬又爽的免费视频 | 亚洲AV成人无码网站| 免费一级毛片不卡在线播放| 麻豆安全免费网址入口| 亚洲乱码日产一区三区| 99在线观看精品免费99| 亚洲一区AV无码少妇电影| 日韩免费毛片视频| 亚洲视频小说图片| 无码免费午夜福利片在线| 欧美亚洲国产SUV| 在线观看亚洲精品福利片| 久久久99精品免费观看| 亚洲1区1区3区4区产品乱码芒果 | 国产精品免费福利久久| 亚洲美女aⅴ久久久91| 免费高清资源黄网站在线观看| 日本免费精品一区二区三区| 久久精品国产亚洲AV网站| 国产免费不卡v片在线观看| 国产精品亚洲综合| 婷婷亚洲久悠悠色悠在线播放| 在线v片免费观看视频| v片免费在线观看| 亚洲成电影在线观看青青| 国产无遮挡又黄又爽免费视频| 日韩电影免费在线观看网站| 亚洲AV无码久久久久网站蜜桃| 亚洲乱码中文字幕手机在线| 8x成人永久免费视频|