2016-10-05 5 views
0

を使用して、CSVファイルのデータとdatagriviewの列のチェックボックスを追加するために、私のデータはcsvファイルからのものであり、このコードでのDataGridViewでそれを示した:はどのように私は、チェックボックスに新しい列を追加したいのC#

DataTable dtDataSource = new DataTable(); 
string[] fileContent = File.ReadAllLines(\data.csv); 

if (fileContent.Count() > 0) 
{ 
    //Create data table columns 
    dtDataSource.Columns.Add("ID); 
    dtDataSource.Columns.Add("Data 1"); 
    dtDataSource.Columns.Add("Data 2"); 
    dtDataSource.Columns.Add("Status"); 

    //Add row data dynamically 
    for (int i = 1; i < fileContent.Count(); i++) 
    { 
     string[] rowData = fileContent[i].Split(','); 
     dtDataSource.Rows.Add(rowData); 
    } 
    if (dtDataSource != null) 
    { 
     dataGridView1.DataSource = dtDataSource; 
    } 
} 

また、チェックボックスがチェックされているか、¨Status¨の場合は値を1で変更する必要がありますか、チェックを外す場合は値を0にする必要があります。

例:

ID,Data1,Data2,Status,checkbox 
1,aaa,bbb,0,✓ 
2,ccc,ddd,1,(unchecked) 
3,eee,fff,1,(unchecked) 

あなたは、保存ボタンをクリックすると、CSVファイルは次のようになります必要があります:私は何をすべき

ID,Data1,Data2,Status 
1,aaa,bbb,1 
2,ccc,ddd,0 
3,eee,fff,0 

?何か案は? CSVファイルは私にとっては少し難しいです。

ありがとうございました!

答えて

0

私は、これはコードです、おかげでとにかく...

これを解決:

string id; 

     for (int i = 0; i < dataGridView1.RowCount; i++) { 
     String path = "\\registros.csv"; 

     List<String> lines = new List<String>(); 

     if (File.Exists(path)) 
     { 
      using (StreamReader reader = new StreamReader(path)) 
      { 
       String line; 

       while ((line = reader.ReadLine()) != null) 
       { 
        id = (string)dataGridView1.Rows[i].Cells[2].Value; 
        if (line.Contains(",")) 
        { 

         String[] split = line.Split(','); 

         if (split[1].Equals(id) && (bool)dataGridView1.Rows[i].Cells[0].FormattedValue == true) 
         { 

          split[10] = "" + 1; 
          line = String.Join(",", split); 

         } 

         if (split[1].Equals(id) && (bool)dataGridView1.Rows[i].Cells[0].FormattedValue == false) 
         { 

          split[10] = "" + 0; 
          line = String.Join(",", split); 

         } 

        } 
        lines.Add(line); 
       } 

      } 

      using (StreamWriter writer = new StreamWriter(path, false)) 
      { 
       foreach (String line in lines) 
        writer.WriteLine(line); 
      } 
     } 
    } 
関連する問題