如何使用c#在带有csv文件数据的datagriview中添加列复选框
本文关键字:datagriview 添加 复选框 数据 文件 何使用 csv | 更新日期: 2023-09-27 18:11:45
我想添加一个新的列与复选框,我的数据是从一个csv文件,并显示在一个datagridview与此代码:
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;
}
}
但我也需要验证,如果复选框被选中,列"状态",他们的值必须改变1或如果它是未选中的值必须为0在每一行的datagridview
的例子:
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文件对我来说有点难。
谢谢!
我解决了这个问题,谢谢。
这是代码:
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);
}
}
}