zoukankan      html  css  js  c++  java
  • C#实现文件与二进制互转并存入数据库

    这篇文章主要介绍了C#实现文件与二进制互转并存入数据库,本文直接给出代码实例,代码中包含详细注释,需要的朋友可以参考下

    //这个方法是浏览文件对象
        private void button1_Click(object sender, EventArgs e)
        {
          //用户打开文件浏览
          using (OpenFileDialog dialog = new OpenFileDialog())
          {
            //只能单选一个文件
            dialog.Multiselect = false;
            //选择一个文件
            if (dialog.ShowDialog() == DialogResult.OK)
            {
              try
              {
                //把选择的文件路径给txtPath
                this.textBox1.Text = dialog.FileName;
              }
              catch (Exception ex)
              {
                //抛出异常
                throw (ex);
              }
            }
          }
        }
     
        //关闭
        private void button3_Click(object sender, EventArgs e)
        {
          this.Close();
        }
     
        //把文件转成二进制流出入数据库
        private void button2_Click(object sender, EventArgs e)
        {
          FileStream fs = new FileStream(textBox1.Text, FileMode.Open);
          BinaryReader br = new BinaryReader(fs);
          Byte[] byData = br.ReadBytes((int)fs.Length);
          fs.Close();
          string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";
          SqlConnection myconn = new SqlConnection(conn);
          myconn.Open();
          string str = "insert into pro_table (pro_name,pro_file) values('测试文件',@file)";
          SqlCommand mycomm = new SqlCommand(str, myconn);
          mycomm.Parameters.Add("@file", SqlDbType.Binary, byData.Length);
          mycomm.Parameters["@file"].Value = byData;
          mycomm.ExecuteNonQuery();
          myconn.Close();
        }
     
        //从数据库中把二进制流读出写入还原成文件
        private void button4_Click(object sender, EventArgs e)
        {
          string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";
          string str = "select pro_file from pro_table where pro_name='测试文件' ";
          SqlConnection myconn = new SqlConnection(conn);
          SqlDataAdapter sda = new SqlDataAdapter(str, conn);
          DataSet myds = new DataSet();
          myconn.Open();
          sda.Fill(myds);
          myconn.Close();
          Byte[] Files = (Byte[])myds.Tables[0].Rows[0]["pro_file"];
          BinaryWriter bw = new BinaryWriter(File.Open("D:\2.rdlc",FileMode.OpenOrCreate));
          bw.Write(Files);
          bw.Close();
            
        }
  • 相关阅读:
    ActiveRecord
    AOP
    Controller
    JFinalConfig
    Java I/O的工作机制2
    Java I/O的工作机制1
    MyEclipse 在build path时无效
    Android studio与夜神模拟器连接
    城市选择选择 / 三级联动
    drawer抽屉 / drawer的开关
  • 原文地址:https://www.cnblogs.com/wanghx-0713/p/7879040.html
Copyright © 2011-2022 走看看