winform代码:关联窗体数据更新,删除dataGridview中选中的一行或多行
一、关联窗体数据更新
关联窗体数据修改时,如果一个为总体数据显示窗体A,另一个为详细修改窗体B,从A进入B,在B中对数据进行修改,然后返回A,这时A窗体的数据需要更新。
我采用最简单的方法,首先保证每个窗体只有一个(网上代码很多),每次激活窗体时就重新载入数据,从A进入B的代码如下:
#region 激活或创建用户管理层面
bool isExit = false;
foreach (Form childFrm in this.MdiParent.MdiChildren)
{
//用子窗体的Name进行判断,如果已经存在则将他激活
if (childFrm.Name == "Form_UserManage")
{
if (childFrm.WindowState == FormWindowState.Minimized)
childFrm.WindowState = FormWindowState.Normal;
childFrm.Activate();
isExit = true;
}
}
if (isExit == false)
{
// 如果该窗体不存在则新生成一个库存查询窗体
Form_UserManage newFrm = new Form_UserManage();
newFrm.MdiParent = this.MdiParent;
newFrm.Show();
}
this.Close();
#endregion
也可以让B成为模式窗体,比较简单。上面A和B是独立的两个窗体,都在同一级菜单下时使用较好。
一、删除dataGridview中选中的一行或多行
参考博文:http://blog.sina.com.cn/s/blog_8b94db9c01015yim.html
DialogResult RSS = MessageBox.Show(this,"确定要删除选中行数据码?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
switch(RSS)
{
case DialogResult.Yes:
for (int i = this.dataGridView1.SelectedRows.Count; i > 0; i--)
{
int ID = Convert.ToInt32(dataGridView1.SelectedRows[i - 1].Cells[0].Value);
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i - 1].Index);
//使用获得的ID删除数据库的数据
string SQL = "delete from UserInfo where UserId='"+ID.ToString()+"'";
int s =Convert.ToInt32(cl.Execute(SQL)); //cl是操作类的一个对像,Execute()是类中的一个方法
if (s!=0)
{
MessageBox.Show("成功删除选中行数据!");
}
}
break;
case DialogResult.No:
break;
}
在上面代码中,需要按照dataGridview中的列下标进行筛选,如果是删除就进行删除,否则就不进行删除。操作时发现下标编号默认是文本框是编号【1,2,3】,行中有button,button编号【1,2,3】,这时按列来确定是否是选择的内容时就会出错。后来发现是dataGridview初始化时少了一个属性:
this.dgv_AllUsers.AutoGenerateColumns = false;
添加上这行代码后可以按照统一下标操作。郁闷了半天才找到原因。
#region 删除选中的行
string buttonText = this.dgv_AllUsers.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
//int CIndex = e.ColumnIndex;
//按钮所在列为第五列,列下标从0开始的
if (buttonText == "删除")
{
//获取在同一行第一列的单元格中的字段值
string _UID =this.dgv_AllUsers[0, e.RowIndex].Value.ToString();
string _Uname = this.dgv_AllUsers[1, e.RowIndex].Value.ToString();
//MessageBox.Show(_UID.ToString());
DialogResult RSS = MessageBox.Show(this, "确定要删除选中行( ID为" + _UID + ":,名称为:" + _Uname + " )的数据码?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
switch (RSS)
{
case DialogResult.Yes:
jinlongDLL.DBHelper db = new DBHelper();
string SQL = "delete from users where id='" + _UID + "';";
int s = db.ExecuteSql(SQL);
if (s != 0)
{
MessageBox.Show("成功删除选中行数据!");
}
dgv_AllUsers_Init();//载入用户数据
break;
case DialogResult.No:
break;
}
}
#endregion
winform代码:关联窗体数据更新,删除dataGridview中选中的一行或多行的更多相关文章
- 删除dataGridview中选中的一行或多行
一.实现的功能:可以删除一行或者多行数据,并在删除前提醒是否确定进行删除! DialogResult RSS = MessageBox.Show(this,"确定要删除选中行数据码?&quo ...
- DataGridView中添加CheckBox列用于选择行
DataGridView中添加CheckBox列用于选择行 1,编辑DataGridView,添加一列 CheckBox ,Name 赋值为 "select",如下图: 2,取消 ...
- dtgrid 手动条件删除表格中的某一行
dtgrid 手动条件删除表格中的某一行 var grid = $.fn.DtGrid.init(dtGridOption); $(function () { grid.load(); }); fun ...
- DataGridView中的rows.Count比实际行数多1的原因以及解决办法
场景 DataGridView怎样实现添加.删除.上移.下移一行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10281414 ...
- 获取DataGridView上选中的一行并转换为一个DataRow类型
ataGridViewRow gridrow = dataGridView1.SelectedRows[0]; DataRowView row_view = (DataRowView)gridrow. ...
- ACCESS删除datagridview和数据库中的一条数据,同时更新显示的方法源码
//删除,行删除 private void 删除_Click(object sender, EventArgs e) { int dgrcount = dataGridView1.SelectedRo ...
- 将Datagridview中的数据导出至Excel中
首先添加一个模块ImportToExcel,并添加引用 然后导入命名空间: Imports Microsoft.Office.Interop Imports System.Da ...
- 【2017-07-03】JS连续删除table中的选中的多行数据
deleteRow() 连续删除多行 应用:删除表格选中的一行或多行.html代码如下: <table > <tr> <td >复选框</td> < ...
- 如何删除datatable中的一行数据
在C#中,如果要删除DataTable中的某一行,大约有以下几种办法: 1,使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(ind ...
随机推荐
- paip.提升用户体验---论文本编辑器的色彩方案
paip.提升用户体验---论文本编辑器的色彩方案 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.ne ...
- #include <functional>
1 bind(引用内部函数, 实体对象的地址, 占位符); 2 bind1st 3 function 1 auto 变量名 = bind(引用内部函数, 实体对象的地址, 占位符); #include ...
- Unity3d 游戏汉化之IL注入文本替换--木石世纪
近期下了个游戏叫木石世纪(Timber and Stone),沙盒游戏类,看着还不错. 搜了下游戏资料,有人求汉化可是因为是小众游戏,没人出汉化.看了眼是Unity3d的,既然是.Net的,仅仅要资源 ...
- 对XXX(数字)安全卫士实在是忍无可忍了,为什么一定要像日本鬼子强奸妇女一样强奸我们这些弱小者
一直一来对XXX(数字)安全卫士非常痛恨,无耻,恶心,没有底线,还有对待我们这些弱小者,就像当年日本鬼子强奸妇女一样,血粼粼的虐杀我们这些弱小者,无法反抗,又必须接受. 你强制杀掉别人的ADB 就算了 ...
- 自学xml的几个例子
xml是一种被用来传输和存储数据的语言,下面给出一些学习xml过程一些简单的例子.具体xml语法请转:http://www.w3school.com.cn/xml/xml_intro.asp 例子1: ...
- DIR - matlab函数
DIR List directory. DIR directory_name lists the files in a directory. Pathnames and wildcards may b ...
- SQL server与Oracle触发器的创建与使用
SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE T ...
- 如何使用JAVA语言抓取某个网页中的邮箱地址
现实生活中咱们常常在浏览网页时看到自己需要的信息,但由于信息过于庞大而又不能逐个保存下来. 接下来,咱们就以获取邮箱地址为例,使用java语言抓取网页中的邮箱地址 实现思路如下: 1.使用Java.n ...
- hive支持sql大全
转自:http://www.aboutyun.com/thread-7316-1-1.html 一.关系运算:1. 等值比较: = 语法:A=B 操作类型:所有基本类型 描述: 如果表达式A与表达式B ...
- R与数据分析旧笔记(一)基本数学函数的使用
创建向量矩阵 > x1=c(2,3,6,8) > x2=c(1,2,3,4) > a1=(1:100) > length(a1) [1] 100 > length(x1) ...