我的数据库中有个字段statu,类型int.填充数据就是0跟1。0表示使用状态,1表示停用状态。
现在使用DataGrid来显示。如何把数据中的0显示成“使用”,数据库中的1显示成“停用”。现在的代码:
string ssql = "select * from tablename";
DataTable dt = DBConnect.Result(ssql) ; DBConnect是一个函数,返回一个DataTable
DataGrid.DataSource = dt;谢谢大家的帮助。
现在使用DataGrid来显示。如何把数据中的0显示成“使用”,数据库中的1显示成“停用”。现在的代码:
string ssql = "select * from tablename";
DataTable dt = DBConnect.Result(ssql) ; DBConnect是一个函数,返回一个DataTable
DataGrid.DataSource = dt;谢谢大家的帮助。
可以在数据库里加一张表.
如,主表(main_table)有id,name,status_id;
子表(sub_table)有:
status_id,name;你把主表和子表的status_id建立主外键关系.在写SQL语句时.
select a.id,a.name,b.name form main_table a,sub_table b where a.status_id=b.status.id你在主表里只存ID,在子表放两条记录就行了.
DataTable dt = DBConnect.Result(ssql) ; DBConnect是一个函数,返回一个DataTable DataColumn col = new DataColumn("tmp");
col.Expression = "iif([field3]=1,'使用','停用')";
dt.Columns.Add(col);dt.AcceptChanges();
DataGrid.DataSource = dt;
DataTable dt = DBConnect.Result(ssql) ; DBConnect是一个函数,返回一个DataTable DataColumn col = new DataColumn("tmp");
col.Expression = "iif([statu]=1,'使用','停用')";
dt.Columns.Add(col);dt.AcceptChanges();
DataGrid.DataSource = dt;
{
if(dr["statu"]==0)
{
dr["statu"]="停用";
}
else
{
dr["statu"]="启用";
}
}
这是我的SQL语句,SaleInfo.InvoFlag是int类型的。但是,在执行这条语句的时候,提示“第9行:')'附近有语法错误。哪里有问题呢?谢谢SELECT SaleInfo.ind as 售电流水号,
SaleInfo.OperatorDate as 售电日期,
UserInfo.UserName as 用户名,
SaleInfo.MeterID as 电表编号,
SaleInfo.CPUID as 卡号,
SaleInfo.SalePower as 购电量,
SaleInfo.SaleMoney as 购电金额,
SaleInfo.InvoCode as 发票号,
(CASE WHEN SaleInfo.InvoFlag = 0 then '打印' else "未打印") as 是否打印
FROM SaleInfo,UserInfo WHERE SaleInfo.UserID=UserInfo.UserID AND UserInfo.UserName = 'luckyang'
如果采用你的方法,那在DATAGRID不是多了一列了吗?谢谢指点
你的方法也行不通,因为数据库中statu是int类型的。而现在对这段赋值,dr["statu"]="停用",这样会提示"输入字符串格式不正确",所需类型是int32
dt.Columns.Add( "status");
dt.Columns.Add( "statusText");..... 取得数据if( dt.Row[x]["status"].ToString() == "0")
{
dt.Row[x]["statusText"] = "使用";
}
else
{
dt.Row[x]["statusText"] = "停用";
}然后,把statusText列和DataGrid绑定即可。
SaleInfo.OperatorDate as 售电日期,
UserInfo.UserName as 用户名,
SaleInfo.MeterID as 电表编号,
SaleInfo.CPUID as 卡号,
SaleInfo.SalePower as 购电量,
SaleInfo.SaleMoney as 购电金额,
SaleInfo.InvoCode as 发票号,
(CASE WHEN SaleInfo.InvoFlag = 0 then '打印' else "未打印") as 是否打印
FROM SaleInfo,UserInfo WHERE SaleInfo.UserID=UserInfo.UserID AND UserInfo.UserName = 'luckyang'
的语法错误找出来了,应该是“case”--“end”成对出现才正确,我验证过了,没问题。