c# 选中dataGridView中的一行将其删除

来源:百度知道 编辑:UC知道 时间:2024/05/06 04:39:17
c#.net中 选中dataGridView中的一行,点击button后,直接删除,并且连同数据表的内容也删除怎么弄?

在网上看的一些答案中,都乱七八糟的,都看不懂!
像增加的话,我可以用以下代码实行,但如果是删除我就不会了,所以请大虾教我下删除
string ora = "data source=orcl;user id=fyp5811;pwd=fyp5811";
OracleConnection oraconn = new OracleConnection(ora);
oraconn.Open();
OracleCommand oracomm = new OracleCommand("insert into bujiaoxuefeist values ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')", oraconn);
oracomm.ExecuteNonQuery();
oraconn.Close();
this.bujiaoxuefeiTableAdapter.Fill(this.dataSet5.bujiaoxuefei);

哪位大虾能清楚的说一下,先谢谢了!
回一楼,我要做的是第二种!,如果只有dataGridView和button,当按button时,请问怎么获取主键?具体该怎么写,可以试着举下例吗?

删除有两种情况:
1.你只是手工删除dataGridView选中行,数据库里的这行数据并没有改变,代码这样写:

if (this.dgvXFLB.SelectedRows.Count > 0)
{
DataRowView drv = dgvXFLB.SelectedRows[0].DataBoundItem as DataRowView;
drv.Delete();
}
判断是否有被选中的行,然后将该行删除,注意,只是dataGridView里移除该行了,数据库里没有发生任何改变。(dgvXFLB是dataGridView,你可以改成自己的)

2.数据库里删除该行数据:
首先你得知道这条数据的主键,它是唯一的,根据主键删除相应内容。
在这里,绑定数据我就不说了。
直接说使用Sql语句删除——

OracleCommand oracomm = new OracleCommand("delete from 表名 where ID="+主键值+"", oraconn);
oracomm.ExecuteNonQuery();

看能否对你有帮助,不明白的还可以问我。

回LZ:

既然你要做第二种,那么你的dataGridView里应该有一列是主键,选中某行时获取这行的主键就可以了。

这样获取:

OracleCommand oracomm = new OracleCommand("delete from 表名 where ID="+this.dataGridView.CurrentRow.Cells["主键列名"].Value+"", oraconn);
oracomm.ExecuteNonQuery();

最要不要直接在dataGridView的方法或属性改动。dataGridView还是属于容器不太适合直接改动。直接数据源改动吧。