我在数据库中有此表:
applicant | module | date | approvation |
xxxx xxxx xxxx xxxxxxx
yyyy yyyy yyyy yyyyyyy
tttt tttt tttt ttttttt
我有这个数据库表.查询后我分配
DataTable到我的DataGridView.DataSource:
QueryAssist qa = new QueryAssist();
DataTable dt = new DataTable();
dt = qa.runQuery('myquery');
dgvApprovazione.DataSource = dt;
dgvApprovazione.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
// modify, transform 2nd column in cellLink
foreach (DataGridViewRow row in dgvApprovazione.Rows)
{
row.Cells[1] = new DataGridViewLinkCell();
}
现在,我要转换是字符串批准或未批准的列批准,而是显示一个复选框.
如果该单元格的值被批准,则选中该复选框,并且不对其进行修改(只读).
相似的东西:
foreach (DataGridViewRow row in dgvApprovazione.Rows)
{
if (row.Cells[3].Value.ToString().Equals("APPROVED"))
{
row.Cells[3] = new DataGridViewCheckBoxCell();
}
}
我要实现……帮我一个问题.
这是可能的 ?怎么样?
重新封顶:
我想更改复选框(选中或未选中)中包含文本/字符串(已批准或未批准)的值的列
对不起,英语不好..
好的替代品?
解决方法:
要在数据库中存储yes / no或on / off或true / false值,最好在sql server中使用位数据类型,但是使用DataGridViewCheckBoxColumn
时,您还可以通过设置TrueValue
和FalseValue
属性来显示和编辑字符串列.
在下面的示例中,我假设数据库中有一个可为空的列,该列需要将值存储为APPROVED或NOTAPPROVED作为nvarchar(50),并且需要使用DataGridViewCheckBoxColumn编辑这些值.
为此,您应该使用设计器或代码以这种方式添加列:
var column1 = new DataGridViewCheckBoxColumn();
column1.Name = "column1"; //Name of column
column1.HeaderText= "Is Approved"; //Title of column
column1.DataPropertyName = "approvation"; //Name of field in database
column1.TrueValue = "APPROVED"; //True value
column1.FalseValue = "NOTAPPROVED"; //False Value
this.dataGridView1.Columns.Add(column1);
这样,您可以显示已批准或未批准为复选框,也可以使用复选框来编辑这些值.
如果您不需要编辑它们,而只想显示它们,则可以将列的只读属性设置为true.