我在数据库中有这个表:
applicant | module | date | approvation |
xxxx xxxx xxxx xxxxxxx
yyyy yyyy yyyy yyyyyyy
tttt tttt tttt ttttttt
我有这个db表。查询后我分配
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();
}
现在,我希望转换字符串approvation
或approved
的列not approved
,并显示一个复选框。
如果此单元格的值为approved
,则复选框已选中且未修改(仅读取)。
类似的东西:
foreach (DataGridViewRow row in dgvApprovazione.Rows)
{
if (row.Cells[3].Value.ToString().Equals("APPROVED"))
{
row.Cells[3] = new DataGridViewCheckBoxCell();
}
}
我有问题要实施......帮助我。
有可能吗?怎么样?
重拍:
我想在复选框(已选中或未选中)中更改值包含文本/字符串(已批准或未批准)的列
抱歉英文不好..
好的选择?
答案 0 :(得分:3)
要在数据库中存储是/否或开启/关闭或 true / false 值,最好使用{ {1}} sql server中的数据类型,但使用DataGridViewCheckBoxColumn
,您可以通过设置TrueValue
和FalseValue
属性来显示和编辑字符串列。
在下面的示例中,我假设您在数据库中有一个可以为空的列,需要将值bit
或APPROVED
存储为NOTAPPROVED
,您需要使用{{1}来编辑这些值}}
为此,您应该使用设计器或代码以这种方式添加列:
nvarchar(50)
通过这种方式,您可以显示已批准或未批准的复选框,也可以使用复选框编辑这些值。
如果您不需要编辑它们并且只想显示它们,则可以将列的只读属性设置为true。