<b><%# DataBinder.Eval(Container.DataItem, "Hotel_FloorId")%></b>
<b><%# DataBinder.Eval(Container.DataItem, "Hotel_FloorName")%></b>
<br>
<asp:repeater id="childRepeater" runat="server" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows ("myrelation") %>' >
<itemtemplate>
<%# DataBinder.Eval(Container.DataItem, "[\"RoomDoorNo\"]")%><br>
</itemtemplate>
</asp:Repeater>
</itemtemplate>
protected void Page_Load(object sender, EventArgs e)
{
string css = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
SqlConnection cnn = new SqlConnection(css);
cnn.Open();
SqlDataAdapter cmd1 = new SqlDataAdapter("SELECT * FROM HM_Hotel_Floor", cnn);
DataSet ds = new DataSet();
cmd1.Fill(ds, "Floors");
parentRepeater.DataSource = ds.Tables["Floors"];
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from HM_Rooms", cnn);
cmd2.Fill(ds, "Rooms");
ds.Relations.Add("myrelation", ds.Tables["Floors"].Columns["Hotel_FloorId"], ds.Tables["Rooms"].Columns["Hotel_FloorId"]);
Page.DataBind();
}
错误是编译器错误消息:CS0246:找不到类型或命名空间名称'DataRowView'(您是否缺少using指令或程序集引用?)
请任何人帮助我
答案 0 :(得分:0)
代码隐藏(.cs)和页面(.aspx)文件有自己的类,因此它们也有单独的导入。在这种情况下,您在ASPX视图上缺少导入:
<%@ Import Namespace="System.Data" %>
这是必需的,因为您在ASPX视图中将Container.DataItem转换为DataRowView。
此外,请确保您的代码隐藏文件中也包含using语句:
Using System.Data;