【问题标题】:Datagridview row data deletion Query code doesnt work correctlyDatagridview行数据删除查询代码不能正常工作
【发布时间】:2019-04-17 13:57:38
【问题描述】:

我可以从 datagridview 中删除行,但不能在带有查询代码的 sql 表中。所以基本上我的“字符串查询”代码会出错。

https://imgur.com/2fn1RCf https://imgur.com/IMc7gBV

private void removebtn_Click(object sender, EventArgs e)
{
     connection.Open();
     int i;
     i = dataGridView1.SelectedCells[0].RowIndex;
     string query = "DELETE FROM PatientRecords WHERE Id=" + dataGridView1.SelectedRows[i].Cells[0].Value.ToString() + "";
     SqlCommand delcmd = new SqlCommand(query, connection);
     delcmd.ExecuteNonQuery();

     dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i].Index);
     MessageBox.Show("Selected Save Deleted");
}

【问题讨论】:

  • 尝试打印您的查询变量以确保它正确。
  • 错误是什么?
  • System.ArgumentOutOfRangeException 那是错误实际上我的查询工作但只针对第一行。它可以是关于行索引选择
  • 你在哪一行得到这个错误?你有没有通过代码来查看它在哪里?
  • @WEI_DBA 字符串查询 = "从 PatientRecords 中删除 Id=" + dataGridView1.SelectedRows[i].Cells[0].Value.ToString() + "";当我选择第二个或第三个时,这条关于 id 平等的行仅适用于我的 gridview 的第一行,它会给出错误

标签: c# sql datagridview rowdeleting


【解决方案1】:

我删除了“i”变量,并将它们更改为 0 现在代码运行良好,感谢您的帮助

string query = "DELETE FROM PatientRecords WHERE Id=" + dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + "";
        SqlCommand delcmd = new SqlCommand(query, connection);
        delcmd.ExecuteNonQuery();

        dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
        MessageBox.Show("Selected Save Deleted");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多