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を使用していませんか?
編集
ファイル例(簡易csv)
11111, 著者, 名前, カテゴリー
11341, 作成者1, 名前1, カテゴリー1