使用 C# 的数据网格视图中的单选按钮
本文关键字:视图 网格 单选按钮 数据网 数据 使用 | 更新日期: 2023-09-27 18:32:23
我有数据网格,数据网格中有两个单选按钮,即批准或拒绝,数据网格中还有一个按钮,即提交
我想做的是,当选择"批准"按钮并单击数据网格中的"提交"按钮时,我希望将该行的数据存储在数据库中,Isactive 为 1,并且应从数据网格中删除该行,但详细信息必须存储在数据库中。
同样,当选择拒绝按钮并单击数据网格中的提交按钮时,该行的数据应存储在数据库中,Isactive 为 0,并且应从数据网格中删除该行
详细信息必须存储在数据库中。
处于活动状态的 未在数据库中更新
有人可以告诉我我的代码出了什么问题吗?下面是我尝试过的 C# 代码。
protected void submit(object sender, EventArgs e)
{
// *Get the Gridview Row* //
DataGridItem drow = (DataGridItem)(sender as Control).Parent.Parent;
RadioButton rbpApprove = (RadioButton)drow.FindControl("rbtnapprove");
RadioButton rbpReject = (RadioButton)drow.FindControl("rbtnreject");
if (rbpApprove.Checked == true)
{
conn.Open();
SqlCommand cmd = new SqlCommand("Update table set IsActive= 0 where ARGID=@ARGID", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
else if (rbpReject.Checked == true)
{
conn.Open();
SqlCommand cmd = new SqlCommand("Update table set IsActive= 1 where ARGID=@ARGID", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
string empid = dgi.Cells[0].Text;
string employeename = dgi.Cells[2].Text;
string designation = dgi.Cells[3].Text;
conn.Open();
SqlCommand comm = new SqlCommand("insert into [table] values (" + empid + ",'" + employeename + "','" + designation + "')", conn);
comm.ExecuteNonQuery();
conn.Close();
}
第一个问题:
if (rbpApprove.Checked == true)
{
conn.Open();
SqlCommand cmd = new SqlCommand("Update table set IsActive= 0 where ARGID=@ARGID", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
else if (rbpReject.Checked == true)
{
conn.Open();
SqlCommand cmd = new SqlCommand("Update table set IsActive= 1 where ARGID=@ARGID", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
这个块没有做任何事情(或者至少没有做它应该做的事情)
这个位:where ARGID=@ARGID
正在检查数据库中带有"@ARGID"的条目。我希望你应该添加参数但忘记了?
cmd.Parameters.AddWithValue("@ARGID", /* The value to be checking for */ )
第二个问题:
SqlCommand comm = new SqlCommand("insert into [T_TADA_aaprovereject_groupdirector] values (" + empid + ",'" + employeename + "','" + designation + "')", conn);
这应该像其他 2 个语句一样参数化,以防止 SQL 注入
所以我建议你把它改成:
SqlCommand comm = new SqlCommand("insert into [T_TADA_aaprovereject_groupdirector] values (@empid, @employeename, @designation)", conn);
comm.Parameters.AddWithValue(@empid, empid)
comm.Parameters.AddWithValue(@employeename, employeename)
comm.Parameters.AddWithValue(@designation, designation)