我想从数据库中删除DatagGidView中已选中的行,我搜索了该站点中的可用问题,但是如果没有选中该行,我找不到确切的答案如何避免空值错误。
我创建了DataGridViewCheckBoxColumn,单击删除按钮时,需要从数据库中删除选定的(选中的)行。
我尝试了以下代码:
首先,当我从数据库中获取数据时,我创建了DataGridViewCheckBoxColumn
DataGridViewCheckBoxColumn checkboxdelete = new DataGridViewCheckBoxColumn();
dgvprice.Columns.Add(checkboxdelete);
checkboxdelete.HeaderText = "Select";
checkboxdelete.Name = "delete";
dgvprice.DataSource = pricelist.GET_CUSTOMER_PRICELIST(Convert.ToInt32(textCustId.Text));
然后,删除按钮的代码我尝试了一种以上的方法,检查空值,但也无法正常工作:
private void btndelete_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvprice.Rows)
{
// if (!string.IsNullOrEmpty(row.Cells[0].ToString()) && !string.IsNullOrEmpty(row.Cells[0].Value.ToString()))
bool status = (bool)dgvprice.Rows[0].Cells[0].Value;
if (status)
{
string cs = ConfigurationManager.ConnectionStrings["mamlakalabConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand("delete from Customers_Price_List where testid = '" + row.Cells[1].Value.ToString() + "' and custid = '" + textCustId.Text + "'", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
MessageBox.Show("Deleted Successfully", "Successfull operation", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
我也尝试了以下问题,但没有针对我的情况的确切解决方案:
我需要确切的答案,我是.NET的新手 该如何解决此错误?
答案 0 :(得分:1)
谢谢JQSOFT先生的回答, 我更改了以下内容:
dgvprice.Columns.Insert(0, checkboxdelete);
代替
dgvprice.Columns.Add(checkboxdelete);
然后更改了删除按钮
bool status = (bool)row.Cells[0].FormattedValue;
代替
bool status = (bool)dgvprice.Rows[0].Cells[0].Value;