/ / this.bind () verwendet den ersten Datensatz nur nicht den zweiten - c #, asp.net, dataset

this.bind () verwendet den ersten Datensatz nur nicht den zweiten - c #, asp.net, dataset

Ich habe ein Problem, dass ich ein Dataset mit den Bezeichnungen im Aspx-Formular von Code dahinter binden möchte, und ich verwende 2 Datasets in einer Funktion, das Problem ist jedoch, dass nur das erste Dataset gebunden wird.

Mein Code ist wie folgt:

 private void fill()
{
DateTime dat;
if (txtDate.Text == "")
dat = DateTime.Now;
else
dat = DateTime.ParseExact(txtDate .Text , "M/d/yyyy", null);

rtbl.LoadRoomTypes(_ds, SessionContext.PropertyID,dat);
dlDashBoard.DataSource = _ds.Tables[rtbl.SqlEntityX];
dlDashBoard.DataBind();

foreach(DataListItem item in dlDashBoard .Items )
{

BindNestedItem(item.ItemIndex );


}
_ds = null;
RoomTypeBAL rtbl1 = new RoomTypeBAL(0);


rtbl1.LoadTotalFree(_ds3, SessionContext.PropertyID, dat);
if(_ds3 !=null && _ds3.Tables[rtbl1 .SqlEntityX ].Rows.Count >0)
this.DataBind();//Problem is here binding _ds always but I want to bind _ds3

}

Meine Quelle ist so:

<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="FreeRooms :"></asp:Label>
</td>
<td>
<asp:Label ID="lblfreeRoom1" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tfreeroom1"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="lblfreeRoom2" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tfreeroom2"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="lblfreeRoom3" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tfreeroom3"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="lblfreeRoom4" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tfreeroom4"].ToString()%>"></asp:Label>
</td>
<td>
<asp:Label ID="lblfreeRoom5" runat="server" Text="<%#_ds3.Tables[0].Rows[0]["tfreeroom5"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="lblfreeRoom6" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tfreeroom6"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label2" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tfreeroom7"].ToString() %>"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label3" runat="server" Text="Arrivals :"></asp:Label>
</td>
<td>
<asp:Label ID="Label4" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tarrival1"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label5" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tarrival2"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label6" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tarrival3"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label7" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tarrival4"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label8" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tarrival5"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label9" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tarrival6"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label10" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tarrival7"].ToString() %>"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label11" runat="server" Text="CheckOuts :"></asp:Label>
</td>
<td>
<asp:Label ID="Label12" runat="server" Text="<%# _ds3.Tables[0].Rows[0]["tcheckout1"].ToString()%>"></asp:Label>
</td>
<td>
<asp:Label ID="Label13" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tcheckout2"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label14" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tcheckout3"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label15" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tcheckout4"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label16" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tcheckout5"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label17" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tcheckout6"].ToString() %>"></asp:Label>
</td>
<td>
<asp:Label ID="Label18" runat="server" Text="<%#  _ds3.Tables[0].Rows[0]["tcheckout7"].ToString() %>"></asp:Label>
</td>
</tr>
</table>

Antworten:

0 für die Antwort № 1

Hallo, ich glaube, dass Sie Ihre DataSource zurücksetzen müssen, this.DataBind () verweist auf ds_.

if(_ds3 !=null && _ds3.Tables[rtbl1 .SqlEntityX ].Rows.Count >0)
dlDashBoard.DataSource = _ds3.Tables[rtbl.SqlEntityX];
dlDashBoard.DataBind();

0 für die Antwort № 2

Vor allem würde ich wirklich empfehlen, dass Sie wechselnzu gridview, anstatt Tabelle mit vielen Inline-Labels zu verwenden, die wirklich schwer zu verwalten sind. Sie können die gleiche Funktionalität haben und viel GridView-Steuerung verwenden, anstatt dies von Hand zu tun.

Zu Ihrem Problem: Sie müssen DataSource festlegen, bevor Sie DataBind () ausführen. Wie soll die Klasse wissen, an welche Quelle sie sich binden soll, wenn Sie sie nicht sagen


0 für die Antwort № 3

Ich habe verstanden, dass ich _ds3 als öffentlich deklarieren muss