• 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();
            
        }
  • 相关阅读:
    CentOS新系统必做的几件事
    CentOS基础指令备忘
    有向图的强连通分量
    模仿c的字符转整数函数 atoi
    N个骰子的点数和的概率分布
    c语言算法题目求职用
    copy指定目录下包括子目录中所有的文件
    js的页面交互
    js的数据类型、函数、流程控制及变量的四种声明方式
    z-index
  • 原文地址:https://www.cnblogs.com/wanghx-0713/p/7879040.html
Copyright © 2020-2023  润新知