【转】C# 二进制读写操作实例代码

一、C#把文件当作二进制流写进数据库
        SqlConnection myconnection = new SqlConnection(strsql);
        myconnection.Open();
        SqlCommand mycommand = new SqlCommand();
        
        FileInfo myfile = new FileInfo("D://**.*");
        FileStream mystream = myfile.OpenRead();
        byte[] mybyte = new byte[myfile.Length];
        mystream.Read(mybyte, 0, Convert.ToInt32(mystream.Length));
        
        strselect = "insert into DF_XML(DT,XML) values(getdate(),@file)";
        mycommand = new SqlCommand(strselect, myconnection);
        SqlParameter myparam0 = new SqlParameter("@file", SqlDbType.Binary);
        myparam0.Value = http://www.ite5e.com/mybyte;
        mycommand.Parameters.Add(myparam0);
        mycommand.ExecuteNonQuery();
        mystream.Close();
        myconnection.Dispose();
        myconnection.Close();

二、C#把二进制流从进数据库读出并写入文件
        string strsql = "data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=MYDataBase";
        byte[] mybyte = null;
        FileStream myfs = new FileStream("D://data.xml", FileMode.CreateNew);
        BinaryWriter writefile = new BinaryWriter(myfs);
        string strselect = "select XML from DF_XML where ID=4";
        SqlConnection myconnection = new SqlConnection(strsql);
        myconnection.Open();
        SqlCommand mycommand = new SqlCommand(strselect, myconnection);
        SqlDataReader myreader = mycommand.ExecuteReader();
        if (myreader.Read())
        {
            mybyte = (byte[])myreader[0];
        }
        myreader.Close();
        myconnection.Close();
        writefile.Write(mybyte, 0, mybyte.Length);
        writefile.Close();
        myfs.Close();

posted @ 2011-03-12 13:50  象牛  阅读(584)  评论(0编辑  收藏  举报