In MySQL Database I have this table :
+------------+----+
| IDE | Of |
+------------+----+
| 01 Line 01 | E |
| 02 Line 08 | E |
| 21 Tras 03 | E |
| 22 Tras 09 | E |
| 31 Client | E |
+------------+----+
5 rows in set
I need to fill with data of this table an aspx page with TextBox Control and Repeater Control:
<asp:Panel ID="pnOf" runat="server">
<asp:TextBox ID="txOf" runat="server" Enabled="false"></asp:TextBox>
</asp:Panel>
<br />
<asp:Panel ID="pnIDE" runat="server" Visible="false">
<asp:Repeater ID="rptIDE" runat="server" EnableViewState="true">
<ItemTemplate>
<asp:TextBox ID="txIDE" runat="server" Text='<%# Eval("IDE") %>'></asp:TextBox>
</ItemTemplate>
</asp:Repeater>
</asp:Panel>
And I have tried with this code-behind :
using (OdbcDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
txOf.Text = reader["Of"].ToString();
rptIDE.DataSource = reader;
rptIDE.DataBind();
}
}
}
But in the output I don't have the first row of database table:
+------------+----+
| IDE | Of |
+------------+----+
| 01 Line 01 | E |
+------------+----+
And I have all other rows of database table :
+------------+----+
| IDE | Of |
+------------+----+
| 02 Line 08 | E |
| 21 Tras 03 | E |
| 22 Tras 09 | E |
| 31 Client | E |
+------------+----+
Can anybody help me?
Thanks in advance.
You are assign the reader to DataSource after reading the first record, this is probably reason for missing first row. Assign it before readying.
using (OdbcDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
//txOf.Text = reader["Of"].ToString();
rptIDE.DataSource = reader;
rptIDE.DataBind();
}
}
As you are using first row for filling text of txOf.Text
you can put data in datatable and get first row data and bind DataTable
using (OdbcDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
var dataTable = new DataTable();
dataTable.Load(reader);
txOf.Text = dataTable.Rows[0]["Of"].ToString();
rptIDE.DataSource = dataTable;
rptIDE.DataBind();
}
}