加入收藏 - 网站地图 - 网站搜索 -
阅读新闻

使用C#导入文件文件实例

[日期:01-19] [字体: ]

文本文件的格式如下:

"000-0001-1-0A","JEF",229.00,0.0345
"000-0002-1-TA","JEF",205.00,0.0351
"000-0003-1-NA","JEF",7516.00,0.0382
"000-0003-1-S1","JEF",1681.00,0.0675
"000-0004-1-0A","JEF",213.00,0.0563

大概思路:

使用StreamReader一行一行的读取TXT文件,然后把每一行的记录写入到已经打开的DataSet的Table中去,最后,使用SqlCommandBuilder自动填充数据并把数据Update到SQL SERVER数据库中去。从而完成数据的读取。

处理代码如下:

string Path;
    string ReadLine;
    string[] array;
    Path=@ImportPath.Text.Trim();
    //Path=@"E:\INOUT.TXT";
    if (File.Exists(Path))
    {
     StreamReader reader=new StreamReader(Path,System.Text.Encoding.GetEncoding("GB2312"));
     while (reader.Peek()>=0)
     {
      try
      {
       ReadLine=reader.ReadLine();
       if (ReadLine!="")
       {
        ReadLine=ReadLine.Replace("\"","");
        array=ReadLine.Split(',');
        if (array.Length != 9)
        {
         MessageBox.Show("您选择的导入数据类型有误,请重试!");
         return;
        }

       SqlDataAdapter Adapter=new SqlDataAdapter();
       DataSet ds=new DataSet();
        Adapter.SelectCommand=new SqlCommand("Sp_GetData",con);
        Adapter.SelectCommand.CommandType=CommandType.StoredProcedure;
        Adapter.Fill(ds,"table");
   
        SqlCommandBuilder ComBuilder=new SqlCommandBuilder(Adapter);
        DataTable DItem =ds.Tables["table"];

        DataRow DRow=DItem.NewRow();
        DRow["Type"]=array[0];
        DRow["Refno"]=array[1];
        DRow["Flag"]=array[2];
        DRow["PartNo"]=array[3];
        if (array[4]==null || array[4]=="")
        {
         DRow["Quantity"]=0;
        }
        else
        {
         DRow["Quantity"]=Convert.ToDouble(array[4]);
        }
        if (array[5]==null || array[5]=="")
        {
         DRow["TranCode"]=0;
        }
        else
        {
         DRow["TranCode"]=Convert.ToInt32(array[5]);
        }
        DRow["Origin"]=array[6];
        DRow["Location"]=array[7];
        if (array[8]==null || array[8]=="")
        {
         DRow["StdCost"]=0;
        }
        else
        {
         DRow["StdCost"]=Convert.ToDouble(array[8]);
        }
        DItem.Rows.Add(DRow);
       }
      }
      catch (Exception ex)
      {
       MessageBox.Show(ex.ToString());
      }
     }

     try
     {
      //Adapter.InsertCommand=ComBuilder.GetInsertCommand();
      //Adapter.UpdateCommand=ComBuilder.GetUpdateCommand();
      //Adapter.DeleteCommand=ComBuilder.GetDeleteCommand();
      Adapter.Update(ds,"table");
      ds.AcceptChanges();
      MessageBox.Show("数据读取完毕");
     }
     catch (Exception ex)
     {
      MessageBox.Show(ex.ToString());
     }
    }
    else
    {
     MessageBox.Show("您输入的路径文件不存在!");
    }
   }
   else
   {
    MessageBox.Show("请选择导入的数据类型!");
   } 




 
评论 】 【 推荐 】 【 打印
上一篇:Microsoft ASP.NET AJAX实现无刷新
下一篇:打开新窗口及信息提示框(C#方法)
相关新闻