将中继器中的行与SQL数据库中的行关联

将中继器中的行与SQL数据库中的行关联,sql,vb.net,repeater,Sql,Vb.net,Repeater,我有下面的中继器,它由SQL数据库中的数据填充,假设有四列。其中三个显示在中继器中(Name、Min、Max),第四个是表中的主键。如果需要,我可以在中继器中添加主键字段作为不可见标签 <asp:repeater id="rpt" runat="server"> <ItemTemplate> <asp:Label ID="repeaterL

我有下面的中继器,它由SQL数据库中的数据填充,假设有四列。其中三个显示在中继器中(Name、Min、Max),第四个是表中的主键。如果需要,我可以在中继器中添加主键字段作为不可见标签

<asp:repeater id="rpt" runat="server"> 
    <ItemTemplate>                                                   
        <asp:Label ID="repeaterLbl"  text = <%#Container.DataItem("Name")%>  runat="server"/>
        <asp:Textbox ID="repeaterMinNumber"  text = <%#Container.DataItem("Min")%> runat="server"/> 
        <asp:Textbox ID="repeaterMaxNumber" text = <%#Container.DataItem("Max")%>  runat="server"/>  <br />                            
    </ItemTemplate>
</asp:repeater> 



我的问题是,如果我更改了文本框文本字段(最小值或最大值),并希望将数据保存回SQL表中,如何将中继器中的正确行与正确的主键(或SQL表中的行)相关联?如果在代码隐藏中提供代码,请在Visual Basic中提供

我见过隐藏字段用于您在这里描述的目的

<asp:HiddenField ID="repeaterKey" runat="server" 
                 Value='<%#Container.DataItem("KeyField")%>' />

或者通过repeaters OnCommand事件发现值,方法是使用通过或按钮属性或其他控件传递的键字段值。有关如何执行此操作的详细信息,请查看microsoft文档。

名称是否唯一地定义了要存储的内容,以便它可以成为数据库中的主键?如果没有,用户如何看到两个同名条目中的哪一个被修改?谢谢你的提问。然而,下面的答案正是我想要的,是否“名称”是唯一的不是问题。如果名称是唯一的,你不需要隐藏字段-使事情更容易谢谢!这正是我要找的。
    For nRow = 0 To rpt.Items.Count - 1

        Dim MyKey As New HiddenField

        MyKey = rpt.Items(nRow).FindControl("repeaterKey")

        Response.Write(MyKey.Value)  // Or do somthing useful with MyKey

    Next