C#大文件读取和写入数据库

c#大文件读取和写入数据库(带进度条的源代码)  
 最近一个项目需要将大文件写入和读取到数据库,觉得可能很多人也需要相关得东西,所以就将代码帖出来

protected int state = 0; //表示进度条当前处理的事件类型,1表读取word,2表写入word,3表doc转pdf,4表txt转pdf

private System.Windows.Forms.Form getDialog(string strFormName,System.Drawing.Icon ico,string strShowContent)
  {
   System.Windows.Forms.Form frm = new Form();
   //初始化窗体
   frm.Text = strFormName;
   frm.Icon = ico;
   frm.MaximizeBox = false;
   frm.MinimizeBox = false;
   frm.TopMost = true;
   frm.ShowInTaskbar = false;
   frm.Height = 168;
   frm.Width = 544;
   frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;


   //添加控件
   System.Windows.Forms.Label lblContent = new Label();
   lblContent.Text = strShowContent;
            lblContent.Left = 30;
   lblContent.Top = 20;
   lblContent.Text = strShowContent;
   frm.Controls.Add(lblContent);
            
            System.Windows.Forms.ProgressBar prgLoader = new ProgressBar();
   prgLoader.Left=30;
   prgLoader.Top = lblContent.Top + lblContent.Height + 5;
   prgLoader.Width = frm.Width - 2 * 30;
   frm.Controls.Add(prgLoader);
   
   System.Windows.Forms.Label lblShowPercent = new Label();
   lblShowPercent.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
   lblShowPercent.Left = prgLoader.Width + 30 - lblShowPercent.Width;
   lblShowPercent.Top = prgLoader.Height + prgLoader.Top + 5;
            lblShowPercent.Text = prgLoader.Value.ToString() + "%";
   lblShowPercent.Name = "lblShowPercent";
   frm.Controls.Add(lblShowPercent);


   System.Windows.Forms.Button btnOK = new Button();
   btnOK.Text = "取消";
   btnOK.Left = prgLoader.Width + 30 - btnOK.Width;
   btnOK.Top = frm.Height - 30 - btnOK.Height;
   btnOK.Click +=new EventHandler(btnOk_Click);
   frm.Controls.Add(btnOK);
            
   return frm;
  }


  private void btnOk_Click(object sender,System.EventArgs e)
  {
     //获取控件信息
   System.Windows.Forms.Button btnOk = (System.Windows.Forms.Button)sender;
     System.Windows.Forms.Form frm = (System.Windows.Forms.Form)btnOk.Parent;
   System.Windows.Forms.ProgressBar prgLoader = null;
   foreach(System.Windows.Forms.Control control in frm.Controls)
   {
    if(control.GetType().ToString() == "System.Windows.Forms.ProgressBar")
    {
     prgLoader = (System.Windows.Forms.ProgressBar)control;
    }
   }
   //判断当前的完成情况
   if(prgLoader.Value == 100)
   {
    frm.Close();
   }
   else
   {
    System.Windows.Forms.DialogResult dr = MessageBox.Show(frm,"是否停止当前操作?","提示",System.Windows.Forms.MessageBoxButtons.YesNo,
     System.Windows.Forms.MessageBoxIcon.Warning);
    if(dr == System.Windows.Forms.DialogResult.Yes)
    { 
     state = 0;
     frm.Close();    
    }
   }
  }

/// <summary>
        /// 写入word到数据库
        /// </summary>
        /// <param name="sqlcon">sql连接类</param>
        /// <param name="strTargetInsert">直接将目标内容写入数据库的sql,"insert into 表名(目标列名) values (@block)"</param>
        /// <param name="strTargetHandle">获取目标内容的句柄的sql,"select @content=textptr(目标列名) from 目标表名 where 条件"</param>
        /// <param name="strTableName">目标表名</param>
        /// <param name="strColumnName">目标列名</param>
        /// <param name="strPath">要读取word的路径</param>
        /// <param name="intSetBlock">定义块大小</param>
  /// <param name="bolShowDialog">是否显示进度条</param>
  /// <param name="strFormName">窗体名称</param>
  /// <param name="ico">窗体图标</param>
  /// <param name="strShowContent">显示内容</param>
        /// <returns>true表成功</returns>
  public bool WriteWordDocument(System.Data.SqlClient.SqlConnection sqlcon,string strTargetInsert,string strTargetHandle,string strTableName,string strColumnName,string strPath,int intSetBlock,bool bolShowDialog,string strFormName,System.Drawing.Icon ico,string strSho
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值