c# DataTable 잔기술들
열 감추기
DataTable을 건드릴 게 아니라 DataGridView를 제어해야 한다.
DataGridView.Colums[].Visible = false;
파일 입출력
클래스는 procotol buffers(protobuf)를 이용하여 쉽게 바이너리로 바꿀 수 있지만 데이터 테이블은 힘들다. 데이터 테이블도 바꿀 수 있게 프로토버프를 이용한 라이브러리가 나와 있긴 하지만 프로토버프 제작자가 만든 게 아니라서 써 보진 않았다.
WriteXml는 데이터 테이블의 이름을 설정해야 작동한다. xml로 저장하고 읽는 건 저장에 많은 용량을 차지하고 느리다. 델파이로는 프로토버프처럼 바이너리 파일 입출력이 가능하여 편한데 .네트로는 가능하지 않다. DataTable이 담고 있는 데이터가 너무 많아서 xml 파일 입출력이 버거워지면 dbms를 써야 할 때가 된 거다.
private void button1_Click(object sender, EventArgs e) { DataTable dataTable = new("data table 0"); // name necessary dataTable.Columns.Add("name"); dataTable.Columns.Add("select", typeof(bool)); dataTable.Rows.Add("test", true); dataGridView1.DataSource = dataTable; dataTable.WriteXml("test.dat", XmlWriteMode.WriteSchema); } private void button2_Click(object sender, EventArgs e) { DataTable dataTable = new(); dataTable.ReadXml("test.dat"); dataGridView1.DataSource = dataTable; }