C# 在asp.net中建立gridview中数据之间的关系
我有一个方法,可以用sql表中的数据填充datatable,而sql表将用于填充gridview。现在在sql表中,我有一个名为“hotel”的字段,其中包含一个hotel的“ID”,它与另一个名为“hotels”的表(带有hotel ID和name)相关 现在,在我的网格视图中,我想显示酒店名称,而不是酒店id。我如何才能做到这一点C# 在asp.net中建立gridview中数据之间的关系,c#,asp.net,sql-server,entity-relationship,C#,Asp.net,Sql Server,Entity Relationship,我有一个方法,可以用sql表中的数据填充datatable,而sql表将用于填充gridview。现在在sql表中,我有一个名为“hotel”的字段,其中包含一个hotel的“ID”,它与另一个名为“hotels”的表(带有hotel ID和name)相关 现在,在我的网格视图中,我想显示酒店名称,而不是酒店id。我如何才能做到这一点 public static DataTable GetRequests(string empid) { DataTabl
public static DataTable GetRequests(string empid)
{
DataTable dt = new DataTable();
string strConnection = ConfigurationManager.AppSettings["connStr"];
using (SqlConnection connection = new SqlConnection(strConnection))
{
connection.Open();
SqlCommand sqlcmd = new SqlCommand();
SqlDataAdapter sAdap = new SqlDataAdapter();
sqlcmd.Connection = connection;
sqlcmd.CommandType = System.Data.CommandType.Text;
sqlcmd.CommandText = "Select request_date,hotel,dining_date,status from requests Where emp_id='" + empid + "'";
sAdap.SelectCommand = sqlcmd;
sAdap.Fill(dt);
}
return dt;
}
这是检索记录的方法。hotel字段包含我想要其名称的ID 您必须使用。更改您的sql查询,事情就会解决 让我们在另一张表中使用包含酒店id的“Hotel”和包含酒店id和酒店名称的“HotelDetails” 酒店的表结构 霍特利德酒店 HotelDetails的表结构 霍特利德酒店, 瓦查尔酒店(10) 现在,您的查询应该是
SELECT b.HotelName as HotelName, c.request_date as RequestDate,c.dining_date as DiningDate ,c.status as Status FROM Hotel a, HotelDetails b, requests c WHERE a.HotelId = b.HotelId and emp_id='" + empid + "'
在GridView中,您的数据字段应该是HotelName,以便显示HotelName
比如说
<Columns>
<asp:TemplateField HeaderText="Slno">
<ItemTemplate>
<%# Container.DataItemIndex + 1 %>
</ItemTemplate>
<ControlStyle Width="30px" />
<ItemStyle ForeColor="#00846F" Width="30px" />
</asp:TemplateField>
<asp:BoundField ControlStyle-Width="90" DataField="HotelName"
HeaderText="Hotel Name" ItemStyle-ForeColor="#00846F"
ItemStyle-Width="30">
<ControlStyle Width="30px" />
<ItemStyle Width="30px" />
</asp:BoundField>
<asp:BoundField ControlStyle-ForeColor="#00846F" ControlStyle-Width="190"
DataField="RequestDate" HeaderText="Request Date"
ItemStyle-ForeColor="#00846F" ItemStyle-Width="100">
<ControlStyle Width="100px" />
<ItemStyle Width="100px" />
</asp:BoundField>
<asp:BoundField ControlStyle-ForeColor="#00846F" ControlStyle-Width="100"
DataField="DiningDate" HeaderText="Dining Date"
ItemStyle-ForeColor="#00846F" ItemStyle-Width="50">
<ControlStyle Width="50px" />
<ItemStyle Width="50px" />
</asp:BoundField>
<asp:BoundField ControlStyle-ForeColor="#00846F" ControlStyle-Width="100"
DataField="Status" HeaderText="Status"
ItemStyle-ForeColor="#00846F" ItemStyle-Width="50">
<ControlStyle Width="50px" />
<ItemStyle Width="50px" />
</asp:BoundField>
</Columns>
如果你觉得它有用,请将它标记为你的答案,否则请让我知道