顯示資料庫資料時,需對特定欄位格式化(如 0/1 轉「否/是」)。
private void Form1_Load(object sender, EventArgs e) {
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Id"));
dt.Columns.Add(new DataColumn("Name"));
dt.Columns.Add(new DataColumn("Bit"));
dt.Rows.Add(new object[] { "1", "abcd", "0" });
dt.Rows.Add(new object[] { "2", "abcd", "1" });
dt.Rows.Add(new object[] { "3", "abcd", "0" });
dt.Rows.Add(new object[] { "4", "abcd", "1" });
dt.Rows.Add(new object[] { "5", "abcd", "1" });
dt.Rows.Add(new object[] { "6", "abcd", "0" });
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = dt;
}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
if (Column_bit.Index == e.ColumnIndex) {
if (e.Value == null) return;
if (e.Value.Equals("0")) e.Value = "否";
else e.Value = "是";
}
}
在 CellFormatting 事件中依欄位索引判斷,修改 e.Value 達到顯示層格式化,不影響底層資料。