Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据列表中的动态数据插入数据库_C#_Asp.net - Fatal编程技术网

C# 将数据列表中的动态数据插入数据库

C# 将数据列表中的动态数据插入数据库,c#,asp.net,C#,Asp.net,我正在使用visual studio和c创建一个staff rota系统,其中staff表中的工作人员姓名显示在数据列表中。除此之外,我还在asp中创建了两个下拉列表,与Staff表分开,尽管它们出现在item template标记中,以便能够在Staff名称旁边动态创建它们。然后,用户可以从下拉列表中选择员工的轮班开始和结束时间 我决定使用数据列表和动态下拉列表,因为员工表会随着新员工的开始或离开而频繁更新,因此未来的rota可能包含不同数量的员工 <table class="s

我正在使用visual studio和c创建一个staff rota系统,其中staff表中的工作人员姓名显示在数据列表中。除此之外,我还在asp中创建了两个下拉列表,与Staff表分开,尽管它们出现在item template标记中,以便能够在Staff名称旁边动态创建它们。然后,用户可以从下拉列表中选择员工的轮班开始和结束时间

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

    <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>
由于这些下拉列表是在数据列表中动态创建的,因此我无法确定如何将每个员工的值插入Rota表,因为它们没有标识,因此我无法将它们输入存储过程的参数中。

将数据列表的DataKeyField设置为StaffID:

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

for(int index = 0;index < DataList1.Items.Count;index++)
{
    int staffID = (int) DataList1.DataKeys[index];
    DropDownList ddStartShift = (DropDownList) DataList1.Items[index].FindControl("ddStartShift");
    // etc.

}

有关DataKeys属性的详细信息:

我已编辑了您的标题。请看,如果共识是否定的,他们不应该。伙计,你必须在这里分享代码。。。我没有很多药草可以想象你做了什么。。。谢谢你的回复。我已经在上面插入了您的建议,尽管在我尝试创建要插入到数据库中的参数时,无法识别staffID和下拉列表。当您说为它们创建参数时,您的意思是使用SqlDataSource吗?这是因为它们嵌入在DataList中:它们位于与SqlDataSource不同的命名容器中,SqlDataSource由DataList的DataListItems定义。您必须在代码中完成这项工作,通过循环遍历DataListItems并按照我在示例中显示的方式检索值。
for(int index = 0;index < DataList1.Items.Count;index++)
{
    int staffID = (int) DataList1.DataKeys[index];
    DropDownList ddStartShift = (DropDownList) DataList1.Items[index].FindControl("ddStartShift");
    // etc.

}