2017-03-21 67 views
1

MySQL数据库我有这个表:Repeater控件在C#

+------------+----+ 
| 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 

我需要填写与TextBox控件一个aspx页面此表的数据Repeater控件

<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> 

而且我这个代码隐藏尝试:

using (OdbcDataReader reader = cmd.ExecuteReader()) 
{ 
    if (reader.HasRows) 
    { 
     while (reader.Read()) 
     { 
      txOf.Text = reader["Of"].ToString(); 

      rptIDE.DataSource = reader; 
      rptIDE.DataBind(); 

     } 
    } 

} 

但在输出我没有数据库表的第一行:

+------------+----+ 
| IDE  | Of | 
+------------+----+ 
| 01 Line 01 | E | 
+------------+----+ 

我有数据库表中的所有其他行:

+------------+----+ 
| IDE  | Of | 
+------------+----+ 
| 02 Line 08 | E | 
| 21 Tras 03 | E | 
| 22 Tras 09 | E | 
| 31 Client | E | 
+------------+----+ 

灿有人帮助我?

在此先感谢。

回答

1

您在读取第一条记录后将读者分配给DataSource,这可能是第一行缺失的原因。在准备之前分配它。

using (OdbcDataReader reader = cmd.ExecuteReader()) 
{ 
    if (reader.HasRows) 
    {  
     //txOf.Text = reader["Of"].ToString(); 
     rptIDE.DataSource = reader; 
     rptIDE.DataBind(); 
    } 
} 

当您使用第一行填充的txOf.Text文本,你可以把数据在数据表中,并得到第一行数据,并绑定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(); 
    } 
}