尝试将一些数据从 List 放入 dataGridView,但有一些问题。
目前有方法,返回我所需的列表 - 请参见下图
代码
public List<string[]> ReadFromFileBooks()
{
List<string> myIdCollection = new List<string>();
List<string[]> resultColl = new List<string[]>();
if (chooise == "all")
{
if (File.Exists(filePath))
{
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
StreamReader sr = new StreamReader(fs);
string[] line = sr.ReadToEnd().Split(new string[] { Environment.NewLine },
StringSplitOptions.RemoveEmptyEntries);
foreach (string l in line)
{
string[] result = l.Split(',');
foreach (string element in result)
{
myIdCollection.Add(element);
}
resultColl.Add(new string[] { myIdCollection[0], myIdCollection[1], myIdCollection[2], myIdCollection[3] });
myIdCollection.Clear();
}
sr.Close();
return resultColl;
}
}
....
这以所需的形式返回给我所需的数据(如数组中的列表)。
在此之后,尝试将其移动到已经有 4 列名称的 dataGridView(因为我确定,需要不超过 4 列) - 请参见下图
尝试使用下一个代码将数据放入 dataGridView
private void radioButtonViewAll_CheckedChanged(object sender, EventArgs e)
{
TxtLibrary myList = new TxtLibrary(filePathBooks);
myList.chooise = "all";
//myList.ReadFromFileBooks();
DataTable table = new DataTable();
foreach (var array in myList.ReadFromFileBooks())
{
table.Rows.Add(array);
}
dataGridViewLibrary.DataSource = table;
}
但结果出现错误 - “需要更多存在于 dataGridVIew 中的行”,但根据我所看到的(上图)q-ty of rows (4) 等于 q-ty of arrays element in List (4)。
尝试通过添加额外的临时变量来检查结果 - 但没关系 - 请参见下图
我哪里错了?也许我使用 dataGridView 的方式不正确?
编辑
文件示例(简单 csv)
11111,作者,姓名,类别
11341,作者 1,姓名 1,类别 1