datagridview 批量更新、日期设置、指定列弹出右键菜单


private void dgv_update_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
var dgv = sender as DataGridView; string id = dgv["id", e.RowIndex].Value.ToString(); clsUpdateRow cls = listupdates.Find(l => l.id == id); if (cls == null)
{
cls = new clsUpdateRow();
} cls.id = id;
var d1 = ValidateCol(dgv["调整日期", e.RowIndex].Value);
var d2 = ValidateCol(dgv["调整金额", e.RowIndex].Value);
if (d1 != "")
{
DateTime dd = DateTime.Now; if (!DateTime.TryParse(d1, out dd))
{
MessageBox.Show("日期输入不正确");
return;
}
}
if (d2 != "")
{ double ddd = 0.0;
if (!double.TryParse(d2, out ddd))
{
MessageBox.Show("请输入有效数字");
return;
}
} cls.data1 = d1;
cls.data2 = d2; listupdates.Add(cls);
}

private void btn_save_Click(object sender, EventArgs e)
{
if (listupdates.Count < 1)
{
MessageBox.Show("没有要更改的数据");
return;
}
string sql = "update [uj_Funding_plan_auto] set tzdate={0},tzmoney={1} where id={2}"; List<SqlParameter> listps = new List<SqlParameter>(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < listupdates.Count; i++)
{
var item = listupdates[i];
string tzdate = "@tzdate" + i;
string tzmoney = "@tzmoney" + i;
string id = "@id" + i; sb.Append(string.Format(sql, tzdate, tzmoney, id) + "\r\n"); SqlParameter p1 = new SqlParameter();
p1.ParameterName = tzdate; if (item.data1.Trim() == "")
{
p1.Value = DBNull.Value;
}
else
{
p1.Value = item.data1;
} SqlParameter p2 = new SqlParameter();
p2.ParameterName = tzmoney; if (item.data2.Trim() == "")
{
p2.Value = DBNull.Value;
}
else
{
p2.Value = item.data2;
}
listps.Add(new SqlParameter(id, listupdates[i].id)); listps.Add(p1);
listps.Add(p2);
} SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, sb.ToString(), listps.ToArray());
listupdates.Clear(); btn_query.PerformClick();
}
private void dgv_update_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex != dgv_update.Columns["调整日期"].Index)
{
return;
}
if (e.Button == MouseButtons.Right)
{
row = e.RowIndex;
col = e.ColumnIndex;
dgv_menu.Show(MousePosition.X, MousePosition.Y);
}
}
files.cnblogs.com/files/HelloQLQ/测试dgv更新.zip
datagridview 批量更新、日期设置、指定列弹出右键菜单的更多相关文章
- 如何在 QWidget 窗口上弹出右键菜单
Title : QWidget 窗口上弹出右键菜单的两个方法 Solution 1 : 给一个 QWidget 添加 QActions,设置 QWidget 的 contextMenuPolicy 属 ...
- WPF datagrid 弹出右键菜单时先选中该项
private void datagrid_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) { ...
- Android中实现长按照片弹出右键菜单
场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为Lin ...
- 在WPF中弹出右键菜单时判断鼠标是否选中该项
和上篇在WPF的TreeView中实现右键选定一样,这仍然是一个右键菜单的问题: 这个需求是在一个实现剪贴板的功能的时候遇到的:在弹出右键菜单时,如果菜单弹出位置在ListViewItem中时,我 ...
- update批量更新某一列成其它列对应的值【原】
update批量更新某一列成其它列对应的值 postgresql 标准sql语句 update AA set name = BB.name , AA.sex = BB.sex from BB wher ...
- ListView的使用(二)长按弹出上下文菜单
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView ...
- EditorGUILayout.EnumPopup 枚举弹出选择菜单
http://www.unity蛮牛.com/thread-25490-1-1.html http://www.unity蛮牛.com/m/Script/EditorGUILayout.EnumPop ...
- 转:jQuery弹出二级菜单
<html> <head> <meta http-equiv="content-type" content="text/html; char ...
- WPF:设置弹出子菜单的是否可用状态及效果
需求: 设置弹出子菜单(二级)项仅首项可用,其他项均不可用:不可用是呈灰色效果. 注: 菜单项都是依据层级数据模板.具体格式如下: StackBlock{TextBlock{Image}.TextBl ...
- 微信小程序弹出操作菜单
微信小程序弹出操作菜单 比如在页面上放一个按钮,点击按钮弹出操作菜单,那么在按钮的 bindtap 事件里,执行下面的代码即可: wx.showActionSheet({ itemList: ['A' ...
随机推荐
- 初学STM32 SDIO (二)
SD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输. 1.SD命令格式 SD命令格式固定为48bit,都是通过 ...
- C#开发的绑定类型默认应用例子 - 开源研究系列文章
这次在用C#编写一个看图软件小工具,然后其它的基本完成了,就是绑定看图软件到那些个图片扩展名的时候碰到了问题,就是如何将看图软件绑定图片文件的默认应用,以及解绑默认应用.这个涉及到注册表操作,但是找度 ...
- VS 在 Release 模式下使用断点调试程序
修改方法: 项目属性 --> c/c++ --> 常规 --> 调试信息格式 选择程序数据库 (默认:无) 项目属性 --> c/c++ --> 优化 --> 优化 ...
- 将py文件编译成pyc
核心代码 import compileall compileall.compile_file("a.py", legacy=True, force=True) 演示步骤 1.新建 ...
- HarmonyOS SDK,助力开发者打造焕然一新的鸿蒙原生应用
鸿蒙生态千帆启航仪式于 1 月 18 日正式启动.从 2019 年 HarmonyOS 正式发布到 2020 年"没有人能够熄灭漫天星光",今天,满天星光终汇成璀璨星河,Harmo ...
- c# 优化代码的一些规则——用委托表示回调[五]
前言 委托为什么可以作为回调? 因为委托可以作为方法的参数. 正文 通过委托,是一种定义类型安全回调. 记得第一个接触委托的时候,是老师讲的,后来真正用的是完成学期项目,一个winform,委托作为事 ...
- ActiveMQ c# 系列——实例(二)
前言 前面一章中介绍了activemq,并且呢安装了. 这一章就来看一下实例吧. 正文 我使用队列举例. 是这样子,队列是一对一的关系,比如说我生产了一条消息,那么只要有一个消费者消费完毕那么就算消费 ...
- MMDeploy部署实战系列【第三章】:MMdeploy pytorch模型转换onnx,tensorrt
MMDeploy部署实战系列[第三章]:MMdeploy pytorch模型转换onnx,tensorrt 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善.如果有那个地方没看懂,评论区问就 ...
- Kotlin 使用协程编写高效的并发程序
概念: 轻量级的线程 协程允许我们在单线程模式下模拟多线程编程的效果,代码执行时的挂起与恢复完 全是由编程语言来控制的,和操作系统无关.这种特性使得高并发程序的运行效率得到了极大的提升. 依赖库: d ...
- 第二課:Mirth培養興趣之旅 ——由定時刷庫接口編程講起
1.准备工作 1.1 本机安装vs2019:(https://visualstudio.microsoft.com/zh-hans/) 1.2 本机安装win64的MariaDB 10.3.27版本数 ...