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' ...
随机推荐
- 【开发者说】XstoryMaker快速书写剧本场景动画
原文:https://mp.weixin.qq.com/s/63V0dfD2IufbX92JeD-G_A,点击链接查看更多技术内容. [开发者说]栏目是为HarmonyOS开发者提供的展示和分享平台, ...
- Windows Server 2008 R2之升级IE8
前言 先需求将Windows Server 2008 R2的IE8升级至IE9,需要安装系统补丁. 安装补丁 补丁包版本 KB2454826 下载地址 https://www.catalog.upda ...
- 面试连环炮系列(二十六):什么情况下JVM频繁发生full GC
1. 什么情况下JVM频繁发生full GC? full gc触发条件是老年代空间不足,具体原因有四个: 系统并发高.执行耗时长或者创建对象过多,导致 young gc频繁,且gc后存活对象太多,但是 ...
- sql 语句系列(众数中位数与百分比)[八百章之第十五章]
众数 众数就是出现最多的那个数. select sal,count(*) as cnt from emp where DEPTNO=20 group by sal 通过分组把他们的行数计算出来.那么最 ...
- mysql 在c# EF 中无法生成对象
正文 1. 创建个vs2013项目,导入EntityFramework.dll. MySql.Data.dll. MySql.Data.Entity.EF6.dll 2. 工具 -> 扩展和更新 ...
- Pytorch-tensor的转置,运算
1.矩阵的转置 方法:t() a=torch.randint(1,10,[2,3]) print(a,'\n') print(a.t()) 输出结果 tensor([[2, 8, 2], [9, 2, ...
- 【oracle】想要得到一个与输入顺序相同的结果
[oracle]想要得到一个与输入顺序相同的结果 在Oracle中,输出结果顺序好像是个rowid相同的,也就是经常使用的rownum序列的值,所以可以通过对rownum进行order by来让输出结 ...
- Serverless 可观测性的过去、现在与未来
简介: 函数计算可观测性经历了 1.0 -> 2.0 的发展,从闭门造车的可观测发展成开源的可观测,从平台的可观测发展为开发者的可观测,从FaaS Only 的可观测演进成了云原生的可观测. 作 ...
- 如何构建企业出海的"免疫力"?深入解读阿里云CDN安全能力
简介: 随着信息技术快速发展与应用,产业数字化和智能化趋势正日益加深,企业信息安全与防护被提升到前所有未有的高度.阿里云CDN经过10多年的技术发展时间,已逐步构筑一个边缘+云的安全网络立体防护体系, ...
- Flink CDC 2.0 正式发布,详解核心改进
简介: 本文由社区志愿者陈政羽整理,内容来源自阿里巴巴高级开发工程师徐榜江 (雪尽) 7 月 10 日在北京站 Flink Meetup 分享的<详解 Flink-CDC>.深入讲解了最新 ...