日期:2014-05-18  浏览次数:21015 次

用datagridview显示数据 怎样把ID转换成名称
例如表table1有ID字段
而表table2中有相对应的ID和name字段

查询table1 其中ID显示table2中的name

------解决方案--------------------
两个表关联

SQL code
select table2.name from table1,table2 where table1.id = table2.id

------解决方案--------------------
1.两个表关联进行查询然后显示

2.用模板列,里面设置一个隐藏的控件,付值给ID,然后在datagrid的绑定事件中,查找到该模板列对应的隐藏控件,获取ID值,去查询数据库,然后付值给一个显示的lable
并隐藏开始付值ID的lable

 <asp:TemplateField HeaderText="名称">
<ItemTemplate>
<asp:lable id="ValueID" runat="server" Text='<%# Eval("ID") %>' />
<asp:lable id="ValueName" runat="server" Text='' />
</ItemTemplate>
</asp:TemplateField>

C#代码
 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
Lable lb1=(Lable))e.Row.Cells[0].FindControl("ValueID");
//查询数据库值,得到ValueName;
string name="数据库查询的值";
Lable lb2=(Lable))e.Row.Cells[0].FindControl("ValueName");
lb2.Text=name;
lb1.Visble=false;
}

}

第二种方式效率极差不建议使用,但是对于1,或者0这样的值,要求显示成对应的"是"或者"否"时比较好