问候。有一个 DataGridView,数据从 SQLite 数据库加载到其中:
private void LoadDataFromDB()
{
m_dTable = new DataTable();
String sqlQuery;
if (m_dbConn.State != ConnectionState.Open)
{
MessageBox.Show("Соединение с БД не установлено");
return;
}
try
{
sqlQuery = "SELECT id as №, customer as Заказчик, product as Товар, has_technical_task as 'Тех. задание', " +
" start_date as 'Дата начала', end_date as 'Дата завершения', is_done as Завершён, delay as Просрочка, cost as Стоимость FROM tasks WHERE is_done=0";
m_sqlAdapter = new SQLiteDataAdapter(sqlQuery, m_dbConn);
m_sqlAdapter.Fill(m_dTable);
dataGrid.DataSource = m_dTable.DefaultView;
}
catch (SQLiteException ex)
{
MessageBox.Show("Ошибка: " + ex.Message);
}
}
数据库中的“已完成”和“参考条款”字段的类型为 INTEGER,但实际上它们是布尔值。所以问题是,有没有办法让这些列(索引为 3 和 6)有一个类型DataGridViewCheckBoxColumn,而不是通常的 DataGridViewColumn?
您可以在以下位置显式设置列类型
DataTable:自然地,以正确的顺序创建具有正确名称的所有列,与 sql 查询匹配。