lz可以新建一个表,包括性别字段(varchar())建立个主外键关系,联合查询就搞定了。要不直接在原表上把bit字段改成可以表示男女的字段类型。这样比较容易,然后在去绑定
解决方案 »
- 本地上传数据到服务器,C#做一个登录并且可以上传的平台(即使网络不通,也可以上传)
- 关于C#引用DLL方法有个HANDLE*参数的问题
- C#: ASP.NET页面里如何调用winform程序里的一个窗体?
- DropDownLisst无刷新
- [WPF] Grid 列如何自适应并且能动态调整其大小
- File.Delete()路径问题
- sql语句在数据库中执行的结果和绑定到datagrid中怎么不一样!??
- C# Encoding .UTF8 .GetBytes和Convert.FromBase64String区别
- 求助:用户登陆界面设计与验证技术
- 高手进
- [求助]C#打印的问题
- C# 如何将已生成的.mht文件转换成.pdf
select 编号,姓名,case when 性别 = '1' then '男' else '女' end as 性别 from temp
将sql语句换成我上面写的就是了
正解。还有个办法,就是用RowCreated事件,取的这个Cell的值判断后重新赋值。但是效率上讲应该是上面的快。
但我这个办法可以用在一些复杂的表现上。
但我已经设计了以个枚举结构,专门用来处理这些转换关系。我现在就是想如何修改dt,然后再绑定控件。(也就是说在绑定前在dt中根据已设计好的枚举结构进行数据的转换)数据中的类似 性别 这样的字段有很多,比如 状态 类字段,修改为varchar类型恐怕不大合适。
这个方法仅仅适用于 数据库字段的取值范围 为静态枚举的情况,如 性别,只有男女之分。而这个表temp中还有一个用来标识该人所属的 班组 的信息,取值为 班组编号班组 是不确定的,可随时增删改。所以这个语句就不能满足需要了。
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["性别"]=dt.Rows[i]["性别"].ToString()=="1"?"男":"女";
}
2、在绑定时处理 void dgv_DataBindingComplete(object o, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataRow dr in dt)
{
if (dr["性别"].ToString().Equals("1"))
{
dr["性别"] = "男";
}
else
{
dr["性别"] = "女";
}
}
}