遇到需要将txt文件转化到内存表dataset中,txt文件是特定格式的,文件中,一条记录为一行,各字段之间用“|”分割(注:最后一个字段后,有”|”)各字段依次为数据库中的相应字段。
    举例如下:
    ID号|线路编码|车站编码|运行模式|模式设置日期|模式设置时间
      1|98|9821|06|20070913|211835|
      方法如下:
将Txt文件转换成dataset_自定义将Txt文件转换成dataset_自定义_02      /**//**//**//// <summary>
将Txt文件转换成dataset_字段_03       /// 文件加载
将Txt文件转换成dataset_字段_03          /// </summary>
将Txt文件转换成dataset_字段_03         /// <param name="FilePath">带文件名的路径</param>
将Txt文件转换成dataset_字段_03        /// <param name="TableName">自定义的表名</param>
将Txt文件转换成dataset_字段_03       /// <param name="FieldsInArray">自定义的表字段</param>
将Txt文件转换成dataset_字段_08        /// <returns>DataSet</returns>
将Txt文件转换成dataset_i++_09
将Txt文件转换成dataset_i++_09        public static DataSet TextFileLoader(string FilePath, string TableName, string[] FieldsInArray)
将Txt文件转换成dataset_自定义将Txt文件转换成dataset_自定义_02        将Txt文件转换成dataset_自定义_13{
将Txt文件转换成dataset_字段_03            DataSet ds = new DataSet();
将Txt文件转换成dataset_字段_03           DataTable dt = new DataTable(TableName);
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_03           FileStream fs = File.Open(FilePath, FileMode.Open, FileAccess.Read);
将Txt文件转换成dataset_字段_03            StreamReader sr = new StreamReader(fs);
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_03          for (int i = 0; i < FieldsInArray.Length; i++)
将Txt文件转换成dataset_i++_21将Txt文件转换成dataset_自定义_22           将Txt文件转换成dataset_自定义_13{
将Txt文件转换成dataset_字段_03               dt.Columns.Add(new DataColumn(FieldsInArray[i], typeof(string)));
将Txt文件转换成dataset_字段_25           }
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_03           string strRead;
将Txt文件转换成dataset_字段_03           bool flag = true;
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_03            while (flag)
将Txt文件转换成dataset_i++_21将Txt文件转换成dataset_自定义_22           将Txt文件转换成dataset_自定义_13{
将Txt文件转换成dataset_字段_03              strRead = sr.ReadLine();
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_03                if (!string.IsNullOrEmpty(strRead))
将Txt文件转换成dataset_i++_21将Txt文件转换成dataset_自定义_22               将Txt文件转换成dataset_自定义_13{
将Txt文件转换成dataset_字段_03                    string[] aryVale = strRead.Split('\t');
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_03                  DataRow dr = dt.NewRow();
将Txt文件转换成dataset_字段_03                  for (int k = 0; k < aryVale.Length; k++)
将Txt文件转换成dataset_i++_21将Txt文件转换成dataset_自定义_22                   将Txt文件转换成dataset_自定义_13{
将Txt文件转换成dataset_字段_03                      dr[FieldsInArray[k]] = aryVale[k];
将Txt文件转换成dataset_字段_25                 }
将Txt文件转换成dataset_字段_03                  dt.Rows.Add(dr);
将Txt文件转换成dataset_字段_25               }
将Txt文件转换成dataset_字段_03               else
将Txt文件转换成dataset_i++_21将Txt文件转换成dataset_自定义_22               将Txt文件转换成dataset_自定义_13{
将Txt文件转换成dataset_字段_03                   flag = false;
将Txt文件转换成dataset_字段_25               }
将Txt文件转换成dataset_字段_25          }
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_03           ds.Tables.Add(dt);
将Txt文件转换成dataset_字段_03            return ds;            
将Txt文件转换成dataset_字段_03
将Txt文件转换成dataset_字段_08        }
将Txt文件转换成dataset_i++_09       

   private void button2_Click(object sender, EventArgs e)
        {
         
            string[] FieldsInArray ={ "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7" };

            DataSet ds = new DataSet();

            ds =TextFileLoader(@"D:\cpbuyaa20071018.txt","good",FieldsInArray);
            dataGridView1.DataSource = ds.Tables[0];

        }

网站计数器