数据库中有一列为flg,内容为1,0
1表示已查看,0表示未查看
怎样才能在dataGridView中的flag列中显示已查看和未查看,而不是1和0数据绑定: dt = database.GetDataSet(sql);
this.dataGridView1.DataSource = dt.Tables[0];
1表示已查看,0表示未查看
怎样才能在dataGridView中的flag列中显示已查看和未查看,而不是1和0数据绑定: dt = database.GetDataSet(sql);
this.dataGridView1.DataSource = dt.Tables[0];
解决方案 »
- 请教各位大哥在winfrom中怎么才能做成上面的效果
- 程序在本机运行正常,但传到服务器的时候会报如下错误,请高手帮忙解决!急!急!急!
- c#如何为foreach语句中的空值赋值?
- 如何重置sql数据库的自动编号从1开始
- 怎么把很多DataGridViewColumn类型用作泛型传入类型
- C# 中有没有像java中List 与ArrayList那样的集合啊?
- 单击、双击鼠标,怎么获取MonthCalendar的日期?
- 求助:上傳文檔時候,出現拒絕存取這信息..咋解決??? 在線等....
- c# dataGridView 导出到 excel问题
- 有没有对话框是返回一个目录的路径而不是文件的路径?
- 用.net链接mysql时报错??????
- 资源管理器里的.cs是不是都要自己写上去的?
if (row != null)
{
if (row["XX"].ToString() == "0")
{
e.Item.Cells[8].Text = "XX";
}
}
数据库方法: select *, case when flag =1 then '已查看' else '未查看' end as flag from tb .... 数据逻辑层方法: foreach for等循环,一条条判断,如果是1就重新对dataview赋值。 页面方法:有行绑定事件,在每一行绑定时,替换掉你要显示的内容。
foreach(DataRow dr in dt.Tables[0].rows)
{
if(dr["flg"].Tostring=="1")
{
dr["flg"]="已查看";
}
else
{
dr["flg"]="未查看";
}
}
dt.Columns.Add("flag_ch");
dt.Columns["flag_ch"].Expression = "iif(id=1,'是','否')";
dataGridView1.DataSource =dt;dt可以事先定义好架构后由DataAdapter来Fill数据。
2楼的办法看起来对,但好像是asp.net的打法,而且就算是asp.net,出现e.Item.Cells[8].Text = "XX";就已经有点不‘正规’了。其实这类问题用查询语句中作转换是相当无趣的。
绑定过程中修改比较正规,不过貌似目前为止在我看来还没有一个正确的回复。
要编辑的话, 你可以用 CheckBox 列, 也可以用 Combobox列只是显示用, 可以用普通的 Textbox 列, 定制 Cell Format 事件做转换即可,
每个单元个 有 Value, FormatedValue 2 个值的.