• 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();
            
        }
  • 相关阅读:
    pip命令提示unknow or unsupported command install解决方法
    SSH登录慢解方案
    python/shell脚本报异常^M: bad interpreter: No such file or directory
    MySQL中自增ID起始值修改方法
    Centos给文件设置了777权限仍不能访问解决方案
    CentOS7下安装mysql5.7
    CentOS7下使用yum安装MariaDB
    sublime text 3启动报错"swallow_startup_errors"解决方法
    一个清除数组的方法在 Kotlin、Java、C#和Nim上的性能测试
    国外立交桥设计参考资料
  • 原文地址:https://www.cnblogs.com/wanghx-0713/p/7879040.html
Copyright © 2020-2023  润新知