c# - 在 c# 面板上使用 DataReader 和 TextBox 控件的 Repeater 控件

标签 c# mysql asp.net datareader

MySQL 数据库中我有这张表:

+------------+----+
| 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 控件Repeater 控件 将此表的数据填充到一个aspx 页面:

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

谁能帮帮我?

提前致谢。

最佳答案

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

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

当您使用第一行填充 txOf.Text 的文本时,您可以将数据放入数据表并获取第一行数据并绑定(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();
    }
}

关于c# - 在 c# 面板上使用 DataReader 和 TextBox 控件的 Repeater 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923306/

相关文章:

mysql - 尝试从 mysql 存储过程获取 Count 单值

mysql - SQL查询辅助嵌套和计数查询

java - 如何获取父值

c# - 使用 Graphics.DrawImage() 缩小某些图像时图像丢失

c# - Facebook C# SDK 获取用户语言/地区

c# - 无法隐式转换类型字符串

c# - 创建的动态按钮单击事件 OnPreRender 不会触发

asp.net - REST 服务的成员资格/授权

c# - selenium 上的 click() 函数在 C# 中不起作用

c# - Microsoft.ML 中的 "Entry point ' Trainers.FastTreeRegressor ' not found"