如何删除DataGridView中选中的一行(vs 2008 c# winform) rt(注:在删除gridview的那行同时也删除数据库中对应的项) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dataset.Customers.Rows[this.dataGridView1.CurrentRow.Index].Delete(); SqlDataAdapter.Update(dataset.Customers); SqlDataAdapter.Update的话还要用CommandBuilder this.Validate(); this.xGTPBindingSource.EndEdit(); foreach (DataGridViewRow r in xGTPDataGridViewX.SelectedRows)//选中的行 { this.xGTPDataGridViewX.Rows.Remove(r); } this.xGTPTableAdapter.Update(this.wZ_DBDataSet.XGTP); 这个仅仅是删除了datagridview中的数据,并没有删除数据库中的对应项,刷新后“删除项”依然存在! 这个仅仅是删除了datagridview中的数据,并没有删除数据库中的对应项,刷新后“删除项”依然存在! 这个操作仅仅删除了datagridview中的数据,并没有删除数据库中的对应项,刷新后“删除项”依然存在! int rowindex = this.dataGridViewExampaper.CurrentCell.RowIndex; //选中所选行 string code = this.dataGridViewExampaper[1, rowindex].Value.ToString();//获取选中行的第二个单元格值然后根据把Code作为条件,执行你的删除SQL语句就行了 已经找到一个笨的方法,但是,目的达到了:先获取要删除行在数据库中的主键信息,将其保存,然后对数据库执行删除操作(将获得的主键信息作为删除的条件),然后对datagridview重新填充!private void toolStripMenuItem1_Click(object sender, EventArgs e) { string cnnstr = "server=.;database=txl;user id=sa;password=sa;"; SqlConnection cnn = new SqlConnection(cnnstr); cnn.Open(); int n = dataGridView1.SelectedRows.Count;//选中的行数 if (n > 0) { for (int i = 0; i < n; i++)//逐行删除数据库中的对应项 { string str = dataGridView1.SelectedRows[i].Cells[1].Value.ToString();//选中行的主键信息,cells【1】是我数据库表中的主键 string deletestr = "delete from UsersInfo where 姓名='" + str + "'"; SqlCommand delete = new SqlCommand(deletestr, cnn); delete.ExecuteNonQuery();//删除数据库中的项 } string selectstr = "select * from UsersInfo "; SqlCommand select = new SqlCommand(selectstr, cnn); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = select; DataSet ds = new DataSet(); adapter.Fill(ds); dataGridView1.DataSource = ds.Tables[0];//重新填充datagridaview adapter.Dispose(); cnn.Close(); MessageBox.Show("恭喜,删除成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("请选中要删除的好友!", "出错提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 已经找到一个笨的方法,但是,目的达到了:先获取要删除行在数据库中的主键信息,将其保存,然后对数据库执行删除操作(将获得的主键信息作为删除的条件),然后对datagridview重新填充!private void toolStripMenuItem1_Click(object sender, EventArgs e) { string cnnstr = "server=.;database=txl;user id=sa;password=sa;"; SqlConnection cnn = new SqlConnection(cnnstr); cnn.Open(); int n = dataGridView1.SelectedRows.Count;//选中的行数 if (n > 0) { for (int i = 0; i < n; i++)//逐行删除数据库中的对应项 { string str = dataGridView1.SelectedRows[i].Cells[1].Value.ToString();//选中行的主键信息,cells【1】是我数据库表中的主键 string deletestr = "delete from UsersInfo where 姓名='" + str + "'"; SqlCommand delete = new SqlCommand(deletestr, cnn); delete.ExecuteNonQuery();//删除数据库中的项 } string selectstr = "select * from UsersInfo "; SqlCommand select = new SqlCommand(selectstr, cnn); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = select; DataSet ds = new DataSet(); adapter.Fill(ds); dataGridView1.DataSource = ds.Tables[0];//重新填充datagridaview adapter.Dispose(); cnn.Close(); MessageBox.Show("恭喜,删除成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("请选中要删除的好友!", "出错提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (MessageBox.Show("确定删除选中的数据吗?", "操作警示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign) == DialogResult.Yes) { int i=0; foreach (System.Windows.Forms.DataGridViewRow myrow in dvgShangPinXinXi.Rows) { i++; if ((bool)myrow.Cells["xuanze"].FormattedValue) { BLL.ShangPinWeiHu.Bll_Delete_ShangPinXinXi(myrow.Cells["shangpindaima"].Value.ToString()); i--; } } if (i == dvgShangPinXinXi.Rows.Count) { MessageBox.Show("没有可以删除的商品", "系统提示"); } http://www.codeproject.com/KB/tree/dropdowntree.aspx C#读取vb编写的exe文件的数据 ie9的超级拖拽(Super Drag and Go)插件,求指点 求一个C#算法问题 Setup Factory 请教 关于GDI+的一个问题 某个字段通过条件不同显示不同的颜色的问题!!! 更新密码问题 关于编写软件的问题 TreeNode控件有折叠下一级节点这个命令吗? 我也在网上找到了一个《C#完全手册》,PDF格式的,谁要的进来下载啦!@ 关于页面生命周期的问题 请教: C# 做动态库的一个问题
SqlDataAdapter.Update(dataset.Customers);
this.xGTPBindingSource.EndEdit(); foreach (DataGridViewRow r in xGTPDataGridViewX.SelectedRows)//选中的行
{
this.xGTPDataGridViewX.Rows.Remove(r);
} this.xGTPTableAdapter.Update(this.wZ_DBDataSet.XGTP);
string code = this.dataGridViewExampaper[1, rowindex].Value.ToString();//获取选中行的第二个单元格值
然后根据把Code作为条件,执行你的删除SQL语句就行了
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
string cnnstr = "server=.;database=txl;user id=sa;password=sa;";
SqlConnection cnn = new SqlConnection(cnnstr);
cnn.Open();
int n = dataGridView1.SelectedRows.Count;//选中的行数
if (n > 0)
{
for (int i = 0; i < n; i++)//逐行删除数据库中的对应项
{
string str = dataGridView1.SelectedRows[i].Cells[1].Value.ToString();//选中行的主键信息,cells【1】是我数据库表中的主键
string deletestr = "delete from UsersInfo where 姓名='" + str + "'";
SqlCommand delete = new SqlCommand(deletestr, cnn);
delete.ExecuteNonQuery();//删除数据库中的项
}
string selectstr = "select * from UsersInfo ";
SqlCommand select = new SqlCommand(selectstr, cnn);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = select;
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];//重新填充datagridaview
adapter.Dispose();
cnn.Close();
MessageBox.Show("恭喜,删除成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("请选中要删除的好友!", "出错提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
string cnnstr = "server=.;database=txl;user id=sa;password=sa;";
SqlConnection cnn = new SqlConnection(cnnstr);
cnn.Open();
int n = dataGridView1.SelectedRows.Count;//选中的行数
if (n > 0)
{
for (int i = 0; i < n; i++)//逐行删除数据库中的对应项
{
string str = dataGridView1.SelectedRows[i].Cells[1].Value.ToString();//选中行的主键信息,cells【1】是我数据库表中的主键
string deletestr = "delete from UsersInfo where 姓名='" + str + "'";
SqlCommand delete = new SqlCommand(deletestr, cnn);
delete.ExecuteNonQuery();//删除数据库中的项
}
string selectstr = "select * from UsersInfo ";
SqlCommand select = new SqlCommand(selectstr, cnn);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = select;
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];//重新填充datagridaview
adapter.Dispose();
cnn.Close();
MessageBox.Show("恭喜,删除成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("请选中要删除的好友!", "出错提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign) == DialogResult.Yes)
{
int i=0;
foreach (System.Windows.Forms.DataGridViewRow myrow in dvgShangPinXinXi.Rows)
{
i++;
if ((bool)myrow.Cells["xuanze"].FormattedValue)
{
BLL.ShangPinWeiHu.Bll_Delete_ShangPinXinXi(myrow.Cells["shangpindaima"].Value.ToString());
i--;
}
}
if (i == dvgShangPinXinXi.Rows.Count)
{
MessageBox.Show("没有可以删除的商品", "系统提示");
}