ASP.NET显示和读取SQL Server数据库中的复选框值

时间:2019-03-20 06:48:20

标签: c# asp.net webforms

我有一个gridview:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="StId" DataSourceID="SqlDataSource5">
        <Columns>
            <asp:CommandField ShowDeleteButton="True" ShowSelectButton="True" CancelText="C" DeleteText="D" EditText="E" HeaderText="Ukazi" InsertText="I" SelectText="S" UpdateText="U" >
            <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:CommandField>
            <asp:BoundField DataField="StId" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="StId" >
            <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:BoundField>
            <asp:BoundField DataField="Vrsta" HeaderText="Vrsta" SortExpression="Vrsta" >
            <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:BoundField>
            <asp:BoundField DataField="Stranka" HeaderText="Stranka" SortExpression="Stranka" >
            <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:BoundField>
            <asp:BoundField DataField="Datum" HeaderText="Datum" SortExpression="Datum" >
            <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:BoundField>
            <asp:BoundField DataField="Rok" HeaderText="Rok dobave" SortExpression="Rok" >
            <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:BoundField>
            <asp:TemplateField HeaderText="Laser" SortExpression="Laser">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox3" runat="server" style="text-align: center" />
                </ItemTemplate>
                <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
                <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Upogibanje" SortExpression="Upogibanje">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox2" runat="server" style="text-align: center" />
                </ItemTemplate>
                <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
                <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Varjenje" SortExpression="Varjenje">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" style="text-align: center" />
                </ItemTemplate>
                <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
                <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:TemplateField>
            <asp:BoundField DataField="Komentar" HeaderText="Komentar" SortExpression="Komentar" >
            <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            <ItemStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="5px" HorizontalAlign="Center" />
            </asp:BoundField>
        </Columns>
        <HeaderStyle ForeColor="Yellow" BackColor="#0000CC" />
    </asp:GridView>

Gridview

这是aspx.cs中的事件:

protected void Page_Load(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            string mycon = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\SW\\vs\\Sesko_web2\\Sesko_web2\\App_Data\\Podatki1.mdf;Integrated Security=True";
            string updatedata = "Select Varjenje from DN where Vrsta=" + row.RowIndex;
            SqlConnection con = new SqlConnection(mycon);
            con.Open();
            string res = "";
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = updatedata;
            cmd.Connection = con;
            using (SqlDataReader oReader = cmd.ExecuteReader())
            {
                while (oReader.Read())
                {
                    res = oReader["Varjenje"].ToString();
                }

                con.Close();
            }
            CheckBox status = (row.Cells[8].FindControl("CheckBox1") as CheckBox);
            if (res == "true")
            {
                status.Checked = true;
            }
            else if (res == "false")
            {
                status.Checked = false;
            }
            int Vrsta = Convert.ToInt32(row.Cells[2].Text);


        }
        foreach (GridViewRow row in GridView1.Rows)
        {
            string mycon = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\SW\\vs\\Sesko_web2\\Sesko_web2\\App_Data\\Podatki1.mdf;Integrated Security=True";
            string updatedata1 = "Select Upogibanje from DN where Vrsta=" + row.RowIndex;
            SqlConnection con = new SqlConnection(mycon);
            con.Open();
            string res1 = "";
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = updatedata1;
            cmd.Connection = con;
            using (SqlDataReader oReader = cmd.ExecuteReader())
            {
                while (oReader.Read())
                {
                    res1 = oReader["Upogibanje"].ToString();
                }

                con.Close();
            }
            CheckBox status = (row.Cells[7].FindControl("CheckBox2") as CheckBox);
            if (res1 == "true")
            {
                status.Checked = true;
            }
            else if (res1 == "false")
            {
                status.Checked = false;
            }
            int Vrsta = Convert.ToInt32(row.Cells[2].Text);


        }
        foreach (GridViewRow row in GridView1.Rows)
        {
            string mycon = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\SW\\vs\\Sesko_web2\\Sesko_web2\\App_Data\\Podatki1.mdf;Integrated Security=True";
            string updatedata2 = "Select Laser from DN where Vrsta=" + row.RowIndex;
            SqlConnection con = new SqlConnection(mycon);
            con.Open();
            string res2 = "";
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = updatedata2;
            cmd.Connection = con;
            using (SqlDataReader oReader = cmd.ExecuteReader())
            {
                while (oReader.Read())
                {
                    res2 = oReader["Laser"].ToString();
                }

                con.Close();
            }
            CheckBox status = (row.Cells[6].FindControl("CheckBox3") as CheckBox);
            if (res2 == "true")
            {
                status.Checked = true;
            }
            else if (res2 == "false")
            {
                status.Checked = false;
            }
            int Vrsta = Convert.ToInt32(row.Cells[2].Text);


        }
    }


    protected void FormView1_ItemDeleted(object sender, FormViewDeletedEventArgs e)
    {
        GridView1.DataBind();
    }

    protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e)
    {
        GridView1.DataBind();
    }

    protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
    {
        GridView1.DataBind();
    }

    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        FormView1.ChangeMode(FormViewMode.Insert);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            CheckBox status = (row.Cells[8].FindControl("CheckBox1") as CheckBox);
            int Vrsta = Convert.ToInt32(row.Cells[2].Text);
            if (status.Checked)
            {
                updaterow(Vrsta,"true");
            }
            else
            {
                updaterow(Vrsta, "false");
            }

        }

        foreach (GridViewRow row in GridView1.Rows)
        {
            CheckBox status = (row.Cells[7].FindControl("CheckBox2") as CheckBox);
            int Vrsta = Convert.ToInt32(row.Cells[2].Text);
            if (status.Checked)
            {
                updaterow2(Vrsta, "true");
            }
            else
            {
                updaterow2(Vrsta, "false");

            }


        }
        foreach (GridViewRow row in GridView1.Rows)
        {
            CheckBox status = (row.Cells[6].FindControl("CheckBox3") as CheckBox);
            int Vrsta = Convert.ToInt32(row.Cells[2].Text);
            if (status.Checked)
            {
                updaterow3(Vrsta, "true");
            }
            else
            {
                updaterow3(Vrsta, "false");

            }


        }
        Page.Response.Redirect(Page.Request.Url.ToString(), true);
    }
    private void updaterow(int Vrsta, String markstatus)
    {
        String mycon = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\SW\\vs\\Sesko_web2\\Sesko_web2\\App_Data\\Podatki1.mdf;Integrated Security=True";
        String updatedata = "Update DN set Varjenje='" + markstatus + "' where Vrsta=" + Vrsta;
        SqlConnection con = new SqlConnection(mycon);
        con.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = updatedata;
        cmd.Connection = con;
        cmd.ExecuteNonQuery();
    }
    private void updaterow2(int Vrsta, String markstatus)
    {
        String mycon = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\SW\\vs\\Sesko_web2\\Sesko_web2\\App_Data\\Podatki1.mdf;Integrated Security=True";
        String updatedata = "Update DN set Upogibanje='" + markstatus + "' where Vrsta=" + Vrsta;
        SqlConnection con = new SqlConnection(mycon);
        con.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = updatedata;
        cmd.Connection = con;
        cmd.ExecuteNonQuery();
    }
    private void updaterow3(int Vrsta, String markstatus)
    {
        String mycon = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\SW\\vs\\Sesko_web2\\Sesko_web2\\App_Data\\Podatki1.mdf;Integrated Security=True";
        String updatedata = "Update DN set Laser='" + markstatus + "' where Vrsta=" + Vrsta;
        SqlConnection con = new SqlConnection(mycon);
        con.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = updatedata;
        cmd.Connection = con;
        cmd.ExecuteNonQuery();
    }


}

我的问题是,当我尝试将新值保存到数据库中时,页面加载周期会覆盖它们。因此,页面加载时加载的值将保持不变,并且无法通过按更新按钮操作来更改。 请询问我其他信息或简单的方法来解决此问题。或者,也许是一种更简单的方法来完全完成此任务。

0 个答案:

没有答案