Я довольно новичок в программировании в целом. Я создаю веб-страницу, где пользователь выбирает процесс из sql заполненного выпадающего списка. Вид сетки затем заполняется соответствующими результатами с помощью флажков. Конечный пользователь может установить флажок, и это должно сохранить значение 1 в базе данных, чтобы позже я мог извлечь отмеченные элементы для другого вида сетки. К сожалению, это только заполнение нулей. Как я могу это исправить?
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox checkBox1 = (row.Cells[0].FindControl("CheckBox1") as CheckBox);
if (checkBox1.Checked)
{
string updateData = "update AuditChecklist$ set IsSelected = @IsSelected";
SqlConnection con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand(updateData, con);
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IsSelected", 1);
cmd.ExecuteNonQuery();
con.Close();
}
else if(!checkBox1.Checked)
{
string updateData = "update AuditChecklist$ set IsSelected = @IsSelected";
SqlConnection con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand(updateData, con);
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IsSelected", 0);
cmd.ExecuteNonQuery();
con.Close();
}
}
Попробовал следующий код, как предложено, но у меня все еще остается та же проблема. Я включил свой дизайн и ASP код для дальнейшей помощи.
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox checkBox1 = (row.Cells[0].FindControl("CheckBox1") as CheckBox);
string updateData = "update AuditChecklist$ set IsSelected = @IsSelected";
SqlConnection con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand(updateData, con);
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IsSelected", checkBox1.Checked ? 1 : 0);
cmd.ExecuteNonQuery();
con.Close();
}
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource2" ForeColor="#333333" GridLines="None" Height="377px" Width="764px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="Select">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="FAST_Screen" HeaderText="FAST Screen" SortExpression="FAST_Screen">
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="Audit_Detail" HeaderText="Audit Detail" SortExpression="Audit_Detail">
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:QMSAuditConnectionString %>" SelectCommand="SELECT [FAST Screen] AS FAST_Screen, [Audit Detail] AS Audit_Detail, [EPS Process] AS EPS_Process, [IsSelected] FROM [AuditChecklist$] WHERE ([EPS Process] = @EPS_Process)">
<SelectParameters>
<asp:ControlParameter ControlID="LstProcess" Name="EPS_Process" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
Дизайн