2016-04-27 68 views
0

我正在WPF c#解决方案中工作,我想使用LinqToCsv为我的listview中的每个项目编写一个CSV文件,CSV将填充字段从数据库。我没有找到解决方案,现在我的代码生成一个CSV文件,包括所有数据,而不是每个项目的数据。 这里是我的代码和我的listview的屏幕,如果有人可以帮助我! http://imgur.com/HmOmIjN生成一个CSV文件foreach项目,并将其列在此列表视图

private void Rechercher_btn(object sender, RoutedEventArgs e) 
    { 
     TOPSAGEEntities db = new TOPSAGEEntities(); 

     var query = from fournisseur in db.F_COMPTET 
        join email in db.F_ECHEANCES on fournisseur.CT_Intitule equals email.ECH_Intitule 
        //where email.cbModification.ToString().Contains(DatePicker.Text) 
        select new { fournisseur = email.ECH_Intitule, email = fournisseur.CT_EMail, date = email.cbModification}; 

     var infoEcheances = from i in db.F_ECHEANCES 
          select new {i.ECH_DateEch, i.CG_Num, i.ECH_Piece, i.ECH_RefPiece, i.ECH_Montant, i.ECH_Libelle}; 



     CsvFileDescription outpCsvFileDescription = new CsvFileDescription 
     { 
      SeparatorChar = ',', 
      FirstLineHasColumnNames = true 
     }; 

     CsvContext cc = new CsvContext(); 
     string myPath = @"C:\Users\DefaultAccount\Desktop\Projet Top Of Travel\FichiersCSV\"; 
     string finalPath = myPath + "test.csv"; 

     ArrayList myList = new ArrayList(listView.Items); 

     foreach (var list in myList) 
     { 
      cc.Write(infoEcheances, finalPath, outpCsvFileDescription); 
     } 

     //MessageBox.Show(DatePicker.SelectedDate.ToString()); 
     listView.DataContext = query.ToList().Distinct(); 
    } 
+0

我建议你使用像' “%USERPROFILE%\桌面\谟热门旅游\ FichiersCSV \”'路径其中'%userprofile%'将成为用户文件夹的参数而不是DefaultAccount。 –

回答

0

移动ccmyPathfinalPathforeach

CsvFileDescription outpCsvFileDescription = new CsvFileDescription 
{ 
    SeparatorChar = ',', 
    FirstLineHasColumnNames = true 
}; 

ArrayList myList = new ArrayList(listView.Items); 
int counter = 1; 

foreach (var list in myList) 
{ 
    CsvContext cc = new CsvContext(); 
    string myPath = @"C:\Users\DefaultAccount\Desktop\Projet Top Of Travel\FichiersCSV\"; 
    string filename = string.Format("test{0}.csv", counter); 
    string finalPath = System.IO.Path.Combine(myPath, filename); 

    cc.Write(infoEcheances, finalPath, outpCsvFileDescription); 

    counter++; 
} 
+0

我得到了一个错误的路径这是System.Windows.Shapes.Path和System.IO.Path之间的模糊引用 –

+0

它的System.IO.Path(我们正在处理文件系统上的路径,而不是绘制任何形状:)) 。我编辑了答案。 – Nino

相关问题