使用复选框更改datagridview中的微小int

qnzebej0  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(278)

我正在用mysql数据库中的数据填充datagridview,其中一个值被设置为tiny int(boolean),我希望它看起来像dgv中的复选框,而不是0和1,我该怎么做?
我在dgv中推送数据的代码。

MySqlConnection myConn = new MySqlConnection(conStr);
adapter = new MySqlDataAdapter();
adapter.SelectCommand = new MySqlCommand(query, myConn);
MySqlCommandBuilder cb = new MySqlCommandBuilder(adapter);
myConn.Open(); //da.Fill(ds, sTable); da.Update(ds, sTable); myConn.Close();

ds = new DataSet();
adapter.Fill(ds, sTable);
myConn.Close();

dataGridView1.Refresh();

dataGridView1.DataSource = ds;
dataGridView1.DataMember = sTable;
dataGridView1.Columns[0].Visible = false;

我把我的手机改成了这样的复选框:

for (int i = 0; i < dataGridView1.RowCount; i++)
{
this.dataGridView1.Rows[i].Cells[7] = new DataGridViewCheckBoxCell();
}

,但我认为它不高兴得到0和1,而不是真的和假的。
很明显它是按预期工作的,但我得到一个错误:

uyto3xhc

uyto3xhc1#

for (int i = 0; i < dataGridView1.RowCount; i++)
{
if(dataGridView1.Rows[i].Cells[7].Value != null)
{
this.dataGridView1.Rows[i].Cells[7] = new DataGridViewCheckBoxCell();
}
}

这为我很好地修复了它,显然程序显示了一个错误,因为它认为它是一个空值。

c8ib6hqw

c8ib6hqw2#

你可以在msdn上找到一个例子https://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridviewcheckboxcolumn(v=vs.110).aspx

private void AddOutOfOfficeColumn()
{
 DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
 {
     column.HeaderText = ColumnName.OutOfOffice.ToString();
     column.Name = ColumnName.OutOfOffice.ToString();
     column.AutoSizeMode = 
        DataGridViewAutoSizeColumnMode.DisplayedCells;
     column.FlatStyle = FlatStyle.Standard;
     column.ThreeState = true;
     column.CellTemplate = new DataGridViewCheckBoxCell();
     column.CellTemplate.Style.BackColor = Color.Beige;
 }

 DataGridView1.Columns.Insert(0, column);
}

相关问题