DataTable - peace098beat/windows_applicaciton GitHub Wiki
CSVからデータテーブルへ登録
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DataSetView
{
public partial class DataSetForm : Form
{
// データテーブル
DataTable datatable = new DataTable();
// コンストラクタ
public DataSetForm()
{
InitializeComponent();
// DataGridViewにデータセットを設定
dataGridView1.DataSource = datatable;
// ListBoxにデータセットの設定
listBox1.DataSource = datatable;
}
private void csvを読み込むToolStripMenuItem_Click(object sender, EventArgs e)
{
// datagridをcsvからロード
OpenFileDialog csvOpen = new OpenFileDialog();
csvOpen.Filter = "CSV File (*.csv)|*.csv";
if (csvOpen.ShowDialog() != DialogResult.OK) return;
// datasetにcsvの内容を登録
SetDatasetFromCSV(csvOpen.FileName);
}
// CSVからDataTableへ登録
private void SetDatasetFromCSV(string csvfilepath)
{
// csv load
Microsoft.VisualBasic.FileIO.TextFieldParser parser =
new Microsoft.VisualBasic.FileIO.TextFieldParser(csvfilepath, Encoding.GetEncoding("Shift_JIS"));
parser.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited;
parser.SetDelimiters(","); // 区切り文字はコンマ
bool IsHeader = true;
while (!parser.EndOfData)
{
string[] row = parser.ReadFields(); // 1行読み込み
if (IsHeader)
{
for (int i = 0; i < row.Length; i++)
{
datatable.Columns.Add(new DataColumn("col" + i.ToString()));
}
IsHeader = false;
}
// 読み込んだデータ(1行をDataGridViewに表示する)
DataRow InsertRow = datatable.NewRow();
for (int i = 0; i < row.Length; i++)
{
InsertRow["col" + i.ToString()] = row[i].ToString(); ;
}
datatable.Rows.Add(InsertRow);
}
// ListBoxにデータセットの設定 (再設定が必要)
listBox1.DisplayMember = "col1";
listBox1.ValueMember = "col2";
// END
}
}
}