Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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# 将GridView中的复选框值保存到数据库。ASP.NET_C#_Asp.net_.net_Gridview_Webforms - Fatal编程技术网

C# 将GridView中的复选框值保存到数据库。ASP.NET

C# 将GridView中的复选框值保存到数据库。ASP.NET,c#,asp.net,.net,gridview,webforms,C#,Asp.net,.net,Gridview,Webforms,我正在用gridview开发webform。我有一个问题,复选框的值没有保存在表中。我什么都试过了,什么都没用。按下按钮后,值不会存储。 正如您在我的代码中所看到的,我并没有对每一行的未标识项使用id,而是使用foreach protected void Button_Submit_Onclick(object sender, EventArgs e) { foreach (GridViewRow row in GridView2.Rows) {

我正在用gridview开发webform。我有一个问题,复选框的值没有保存在表中。我什么都试过了,什么都没用。按下按钮后,值不会存储。 正如您在我的代码中所看到的,我并没有对每一行的未标识项使用id,而是使用foreach

protected void Button_Submit_Onclick(object sender, EventArgs e)
     {
         foreach (GridViewRow row in GridView2.Rows)
         {
             con.ConnectionString = ConfigurationManager.ConnectionStrings["TestDeductionsConnectionString2"].ToString();

             bool private1 = (row.FindControl("CheckBox1") as CheckBox).Checked;
             SqlCommand cmd = new SqlCommand("insert into DetailCosts(private) values(@private1)", con);
             if (private1 == true)
             {
                 cmd.Parameters.Add(new SqlParameter("@private1", SqlDbType.Bit));
                 cmd.Parameters["@private1"].Value = 1;
                 //cmd.Parameters.Add("@private1", SqlDbType.Bit).Value = 1;
             }
             else
             {
                 cmd.Parameters.Add(new SqlParameter("@private1", SqlDbType.Bit));
                 cmd.Parameters["@private1"].Value = 0;
                 //cmd.Parameters.Add("@private1", SqlDbType.Bit).Value = 0;
             }
             con.Open();
             cmd.ExecuteNonQuery();
             con.Close();
         }}
我的Gridview有一个代码:

<asp:GridView ID="GridView2" runat="server"  AutoGenerateColumns="False" DataSourceID="SqlDataSource2" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical" DataKeyNames="recordid">
                            <AlternatingRowStyle BackColor="#CCCCCC" />
                            <Columns>
                                 <asp:BoundField DataField="recordid" HeaderText="recordid" SortExpression="recordid">
                                </asp:BoundField>
                                <asp:BoundField DataField="Employee" HeaderText="Employee" SortExpression="Employee">
                                </asp:BoundField>
                                <asp:BoundField DataField="mesec" HeaderText="Month" SortExpression="mesec">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="godina" HeaderText="Year" SortExpression="godina">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="CallDate" HeaderText="Call Date" SortExpression="CallDate">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="PhoneType" HeaderText="Phone Type" SortExpression="PhoneType">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="land" HeaderText="Land" SortExpression="land">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="number" HeaderText="Number" SortExpression="number">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="Minutes" HeaderText="Minutes" SortExpression="Minutes">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="Costs" HeaderText="Costs" SortExpression="Costs">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:BoundField DataField="privateCost" HeaderText="Private Costs" SortExpression="privateCost">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                                <asp:TemplateField HeaderText="Private" SortExpression="private" >
                                    <EditItemTemplate>
                                        <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("private") %>' />
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("private") %>' />
                                    </ItemTemplate>
                                    <HeaderStyle HorizontalAlign="Center" />
                                </asp:TemplateField>
                                <asp:BoundField DataField="Komentar" HeaderText="Commnet" SortExpression="Komentar">
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:BoundField>
                            </Columns>
                            <FooterStyle BackColor="#CCCCCC" />
                            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                            <SortedAscendingCellStyle BackColor="#F1F1F1" />
                            <SortedAscendingHeaderStyle BackColor="#808080" />
                            <SortedDescendingCellStyle BackColor="#CAC9C9" />
                            <SortedDescendingHeaderStyle BackColor="#383838" />
                        </asp:GridView>


您是否尝试调试代码?是否在save事件触发之前再次绑定网格(可能是在OnLoad中)。我认为您的代码没有问题。我怀疑是您的复选框值在回发后没有保留。因此,在页面加载事件中。您需要将数据重新绑定回网格视图并选中复选框。我希望这有帮助