将数据表中的动态数据插入数据库

时间:2013-03-21 18:21:23

标签: c# asp.net

我正在使用visual studio和c#来创建一个员工轮换系统,其中工作人员的名字来自"员工"表格显示在数据列表中。除此之外,我在asp中创建了2个下拉列表,与" Staff"表,尽管它们出现在项模板标记中,以使它们能够在人员名称旁边动态创建。然后,用户可以从下拉列表中选择员工的班次开始和结束时间。

我决定使用数据列表和动态下拉列表,因为员工表会经常更新,因为新员工可能会开始或离开,因此未来的员工可能会包含不同数量的员工。

    <table class="style57" width="100%">
        <tr>
            <td class="style70" width="100%">
                        <asp:DataList ID="DataList1" runat="server" DataSourceID="StaffHours" 
                            ShowFooter="False" Width="668px" Height="16px" CellPadding="1" CellSpacing="1"">
                            <ItemTemplate>
                            <table width="100%">
                            <tr>
                            <td class="style76" width="0%">
                            <asp:Label ID="lblStaffID" runat="server" bgcolor="#CCCCCC" Visible=false Text='<%# Eval("StaffID") %>'/>
                            </td>
                            <td class="style73" width="20%">
                                <asp:Label ID="lblFirstName" runat="server" bgcolor="#CCCCCC" Text='<%# Eval("FirstName") %>'/>
                                &nbsp;<asp:Label ID="lblLastName" runat="server" bgcolor="#CCCCCC" Text='<%# Eval("LastName") %>' />
                            </td>
                            <td width="10%"> 
                                <asp:DropDownList ID="ddStartShift" runat="Server">
                                <asp:ListItem  Value="Start Time" Selected="True"></asp:ListItem>
                                <asp:ListItem  Value="06:00"></asp:ListItem>
                                <asp:ListItem  Value="07:00"></asp:ListItem>
                                <asp:ListItem  Value="08:00"></asp:ListItem>
                                <asp:ListItem  Value="09:00"></asp:ListItem>
                                <asp:ListItem  Value="10:00"></asp:ListItem>
                                <asp:ListItem  Value="11:00"></asp:ListItem>
                                <asp:ListItem  Value="12:00"></asp:ListItem>
                                <asp:ListItem  Value="13:00"></asp:ListItem>
                                <asp:ListItem  Value="14:00"></asp:ListItem>
                                <asp:ListItem  Value="15:00"></asp:ListItem>
                                <asp:ListItem  Value="16:00"></asp:ListItem>
                                <asp:ListItem  Value="17:00"></asp:ListItem>
                                <asp:ListItem  Value="18:00"></asp:ListItem>
                                <asp:ListItem  Value="19:00"></asp:ListItem>
                                <asp:ListItem  Value="20:00"></asp:ListItem>
                                <asp:ListItem  Value="21:00"></asp:ListItem>
                                <asp:ListItem  Value="22:00"></asp:ListItem>
                                <asp:ListItem  Value="23:00"></asp:ListItem>
                                <asp:ListItem  Value="00:00"></asp:ListItem>
                                <asp:ListItem  Value="01:00"></asp:ListItem>
                                <asp:ListItem  Value="02:00"></asp:ListItem>
                                <asp:ListItem  Value="03:00"></asp:ListItem>
                                <asp:ListItem  Value="04:00"></asp:ListItem>
                                <asp:ListItem  Value="05:00"></asp:ListItem>
                                </asp:DropDownList>
                                </td>
                                <td width="10%"> 
                                <asp:DropDownList ID="ddEndShift" runat="Server">
                                <asp:ListItem  Value="End Time" Selected="True"></asp:ListItem>
                                <asp:ListItem  Value="06:00"></asp:ListItem>
                                <asp:ListItem  Value="07:00"></asp:ListItem>
                                <asp:ListItem  Value="08:00"></asp:ListItem>
                                <asp:ListItem  Value="09:00"></asp:ListItem>
                                <asp:ListItem  Value="10:00"></asp:ListItem>
                                <asp:ListItem  Value="11:00"></asp:ListItem>
                                <asp:ListItem  Value="12:00"></asp:ListItem>
                                <asp:ListItem  Value="13:00"></asp:ListItem>
                                <asp:ListItem  Value="14:00"></asp:ListItem>
                                <asp:ListItem  Value="15:00"></asp:ListItem>
                                <asp:ListItem  Value="16:00"></asp:ListItem>
                                <asp:ListItem  Value="17:00"></asp:ListItem>
                                <asp:ListItem  Value="18:00"></asp:ListItem>
                                <asp:ListItem  Value="19:00"></asp:ListItem>
                                <asp:ListItem  Value="20:00"></asp:ListItem>
                                <asp:ListItem  Value="21:00"></asp:ListItem>
                                <asp:ListItem  Value="22:00"></asp:ListItem>
                                <asp:ListItem  Value="23:00"></asp:ListItem>
                                <asp:ListItem  Value="00:00"></asp:ListItem>
                                <asp:ListItem  Value="01:00"></asp:ListItem>
                                <asp:ListItem  Value="02:00"></asp:ListItem>
                                <asp:ListItem  Value="03:00"></asp:ListItem>
                                <asp:ListItem  Value="04:00"></asp:ListItem>
                                <asp:ListItem  Value="05:00"></asp:ListItem>
                                </asp:DropDownList>
                                </td>
                            </tr>
                         </table>
                         </ItemTemplate>
                        </asp:DataList>
                        <asp:SqlDataSource ID="StaffHours" runat="server" 
                            ConnectionString="<%$ ConnectionStrings:myConnectionString %>" 
                            SelectCommand="SELECT [StaffID], [FirstName], [LastName] FROM [Staff]">
                        </asp:SqlDataSource>
                    </td>
        </tr>
</table>

由于这些下拉列表是在数据列表中动态创建的,我无法弄清楚如何将每个员工的价值插入&#34; Rota&#34;因为它们没有被识别,因此我无法将它们输入到存储过程的参数中。

1 个答案:

答案 0 :(得分:0)

DataKeyField的{​​{1}}设置为DataList

StaffID

这将允许您在回发处理数据时检索StaffID:

<asp:DataList ID="DataList1" runat="server" DataSourceID="StaffHours" 
DataKeyField = "StaffID" ShowFooter="False" Width="668px" 
Height="16px" CellPadding="1" CellSpacing="1"">

有关DataKeys属性的更多信息:BaseDataList DataKeys Property