DataGrid显示问题!
数据库 int类型 1代表“小王”2代表“小张”3代表“小赵”
在DataGrid显示姓名的时候显示的是值
我想让他现成文字应该如何做:
绑定代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
SqlConnection con = DataCon.DataJCon.JCon();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("Work_GetList",con);
DataSet ds = new DataSet();
sda.Fill(ds,"emp");
this.DataGrid1.DataSource=ds.Tables["emp"];
this.DataGrid1.DataKeyField = "WorkId";
this.DataGrid1.DataBind();
con.Close();
}
数据库 int类型 1代表“小王”2代表“小张”3代表“小赵”
在DataGrid显示姓名的时候显示的是值
我想让他现成文字应该如何做:
绑定代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
SqlConnection con = DataCon.DataJCon.JCon();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("Work_GetList",con);
DataSet ds = new DataSet();
sda.Fill(ds,"emp");
this.DataGrid1.DataSource=ds.Tables["emp"];
this.DataGrid1.DataKeyField = "WorkId";
this.DataGrid1.DataBind();
con.Close();
}
con.Open();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("Work_GetList",con);
DataSet ds = new DataSet();
sda.Fill(ds,"emp");
this.DataGrid1.DataSource=ds.Tables["emp"];
this.DataGrid1.DataKeyField = "WorkId";
this.DataGrid1.DataBind();
con.Close();
===========================
我是写在存储过程里的.你写程序里也行
写在我这个查询的存储过程中吗?
AS
SELECT * FROM Work
GO
这是我查询的存储过程!
Select Type,TypeName=(case when type=1 then '小王' when type=2 then '小张' end) From
tableName (语句可能有问题,呵呵,自己查下,好久没有写过了)
第二种方法,绑定时可以用模版列(绑定列估计也可以,但我不怎么清楚)
前面表达式应为<%# DataBinder.Eval(Container.DataItem,"字段")%>
该为<%# Formating(DataBinder.Eval(Container.DataItem,"字段"))%>
Formating为后台CS代码中一个public 或者 protected 函数,例如
protected string Formating(object s)
{
string retStr = s.ToString();
switch
{
case 1:retStr="小王";break;
.......
}
return retStr;}
AS
SELECT * FROM Work
GO
SELECT
@jgr =
CASE
WHEN jgr=1 THEN '小王'
WHEN jgr=2 THEN '小张'
WHEN jgr=3 THEN '小红'
END
这样写?jgr是work表中的字段 这样不对吧
你declare @xx varchar 表示定义一个变量
然后select @xx =
case ........ jgr=1 ......
CREATE PROCEDURE Work_GetList
AS
SELECT *,TypeName=(case when jgr=1 then '小王' when jgr=2 then '小红' when jar=3 then '小张' else ''end) FROM Work
GO
@N_YOSAN=N_YOSAN, --予算名称
@N_TOU=N_TOU, --戸数
@M_TOCHIDAIKIN=M_TOCHIDAIKIN, --土地代金
@M_TSUBOTAN=M_TSUBOTAN, --坪単価
@M_TATEGENKA=M_TATEGENKA, --建物原価(税込)
@M_OPTIONGENKA=M_OPTIONGENKA, --オプション原価(税込)
@M_TOCHIURI=M_TOCHIURI, --土地販売価格
@M_TATEURI=M_TATEURI, --建物販売価格(税込み)
@M_TATEURI_SUB=M_TATEURI-M_TATEURI_ZEI, --建物販売価格(税抜き)
@M_OPTION= M_OPTION, --オプション価格(税込)
@STATUS = --確認済の状態
CASE
WHEN D_KAKUNIN IS NOT NULL THEN '確認済'
WHEN D_KAKUNIN IS NULL THEN ' '
END
FROM P014予算
WHERE C_PRJ = @C_PRJ
AND CNT = @INTINDEX
AS
SELECT *,TypeName=(case when jgr=1 then '小王' when jgr=2 then '小红' when jar=3 then '小张' else ''end) FROM Work
GOjgr列名无效呀!
AS
SELECT *,TypeName=(case when jgr=1 then '小王' when jgr=2 then '小红' when jar=3 then '小张' else ''end) FROM Work
GOjgr列名无效呀!JGR是指你的Work表里用来表示‘小王’‘小张’对应的整数的那个字段,你变通下吧。
SELECT
TypeName =
CASE
WHEN D_KAKUNIN IS NOT NULL THEN '確認済'
WHEN D_KAKUNIN IS NULL THEN ' '
END
FROM P014予算是可以的
ID,
NAME=
CASE
WHEN jgr=1 THEN '小王'
WHEN jgr=2 THEN '小张'
WHEN jgr=3 THEN '小红'
END
from 表DATAGRID里DATAFIELD对应人名是"NAME"
把人名改成你自己要的就OK了
ASSELECT ID, CASE JGR
WHEN '1' THEN '小王'
WHEN '2' THEN '小张'
WHEN '3' THEN '小红'
ELSE ''
END AS NAME
FROM WORK