JIALIH_H
JIALIH_H
采纳率40%
2018-11-01 03:20

c#winform中datagridview删除数据库中的整行数据

已采纳

图片说明
int id = 0;
try
{
id = (int)dgv_inventory.CurrentRow.Cells[0].Value;
}
catch (System.Exception ex)
{
MessageBox.Show("请选择有效数据行!");
return;
}
if (MessageBox.Show("确定要删除吗?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)
return;
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString =
"Server=(local);Database=DB_Equipment;Integrated Security=sspi";
using (SqlConnection conn = new SqlConnection(sqlConnection.ConnectionString))
{
string sql = string.Format("delete from tb_inventory where EquipmentNo={0}", id);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
int n = Convert.ToInt32(cmd.ExecuteNonQuery());
if (n != 1)
{
MessageBox.Show("删除失败!");
}
else
{
MessageBox.Show("删除成功!");
}
}
以上为删除按钮事件中的代码,运行时只能运行到try_catch语句,即一直跳出窗体提示“请选择有效数据行”,这是哪里出现了问题?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_23126581 郭老师的小迷弟雅思莫了 3年前

    id = (int)dgv_inventory.CurrentRow.Cells[0].Value; 报错了,估计你dgv_inventory.CurrentRow.Cells[0].Value获取到的是空。你先用string类型接受下,debug看下结果是什么。转化成int时报错了。

    点赞 1 评论 复制链接分享
  • Amane5 Amane5 3年前

    你的gridview的选择模式为单元格选择,这时候CurrentRow这个东西是为null的
    这个东西是在选择模式为行选择的时候,才不是null

    点赞 1 评论 复制链接分享

相关推荐