数据导出到TXT文件

来源:互联网 发布:阿里云名片识别demo 编辑:程序博客网 时间:2024/05/17 05:13

  /// <summary>
    ///直接用表名导出数据到同名TXT文件
    /// </summary>
    /// <param name="ProjectID">项目号也是表名,注意格式为[表名],如[123]</param>
    /// <param name="TXTPATH">导出TXT文件目录,格式如  @"G:/";</param>

    public void ToTxt(string ProjectID, string TXTPATH)
    {
       DataSet ds= GetData(ProjectID);
       ExportToTxt(ds, TXTPATH, ProjectID);

    }
  
    /// <summary>
    /// 获得数据集Dataset
    /// </summary>
    /// <param name="table">表名</param>
    /// <returns>Dataset</returns>
    public DataSet GetData(string table)
    {
        try
        {
            string strSql = "select * from " + table + " ";

            SqlConnection objConn = new SqlConnection(ConnectionString);
            objConn.Open();
            SqlDataAdapter daPoint = new SqlDataAdapter(strSql, objConn);
            DataSet dsYC = new DataSet("YC");
            daPoint.Fill(dsYC, "Test");
            return dsYC;
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }

    }
    /// <summary>
    /// 把数据导出到txt文件
    /// </summary>
    /// <param name="ds">数据集Dataset</param>
    ///<param name="TXTPATH">txt文件目录</param>
    ///<param name="ProjectID">以项目名作为文件名</param>
    public void ExportToTxt(DataSet ds, string TXTPATH,string ProjectID )
    {

        string TXTPOSTFIX = ".txt";
        if (ds.Tables.Count != 0)
        {
     
  
            //创建一个.txt文件,文件名用项目名
            FileInfo file = new FileInfo("" + TXTPATH + ProjectID + TXTPOSTFIX + "");
            StreamWriter textFile = null;
            try
            {
                textFile = file.CreateText();
            }
            catch
            {
             System.Web.HttpContext.Current.Response.Write("系统找不到指定目录下的文件: " + TXTPATH + ProjectID + TXTPOSTFIX + " ");
                return;
            }

            //把Dataset中的数据写入.txt文件中
            for (int totaltable = 0; totaltable < ds.Tables.Count; totaltable++)
            {
                //统计dataset中当前表的行数
                int row = ds.Tables[totaltable].Rows.Count;

                //统计dataset中当前表的列数
                int column = ds.Tables[totaltable].Columns.Count;

                //用于统计当前表中每列记录中字符数最长的字符串的长度之和
                int totalLength = 0;

 

              

                //把dataset中当前表的数据写入.txt文件中
                for (int i = 0; i < row; i++)
                {
                    for (int j = 0; j < column; j++)
                    {
                        textFile.Write(ds.Tables[totaltable].Rows[i][j].ToString());

                    }
                    textFile.WriteLine();

                }
                textFile.WriteLine();


            }

            //关闭当前的StreamWriter流
            textFile.Close();
            System.Web.HttpContext.Current.Response.Write("数据文件已保存到" + "   " + file.FullName);
        }
        else
        {
            System.Web.HttpContext.Current.Response.Write("No Data");
        }
       
    }

原创粉丝点击