DataTable 设置primarykey 后进行 Merge操作
1.先查看概念 可以看highplayer博客
http://blog.csdn.net/highplayer/article/details/6613817
2.
protected void staticStressTest(object sender, EventArgs e)
{
#region MyRegion
if (string.IsNullOrEmpty(txt_ComputeDate_.Value))
{
Page.ClientScript.RegisterClientScriptBlock(JSUtil.CurrentPage.GetType(), Util.NewGuid(), @"<script>$.messager.alert('操作提示', '查询日期不能为空!');</script>");
return;
}
DataTable dt = new DataTable();
DateTime computeDate = DateTime.Parse(txt_ComputeDate_.Value);
double[] termList =
{
0.01, 0.02, 0.03, 0.05, 0.1, 0.2, 0.3, 0.5, 1, 2, 5, 0, -0.01, -0.02, -0.03,
-0.05, -0.1, -0.2, -0.3, -0.5, -1, -2, -5
};
string[] nameList =
{
"Add_One_Percent", "Add_Two_Percent", "Add_Three_Percent", "Add_Five_Percent",
"Add_Ten_Percent", "Add_Twenty_Percent", "Add_Thirty_Percent", "Add_Fifty_Percent",
"Add_One_Hundred_Percent", "Add_Two_Hundred_Percent",
"Add_Five_Hundred_Percent", "Unchanged_Value", "Minus_One_Percent", "Minus_Two_Percent",
"Minus_Three_Percent", "Minus_Five_Percent", "Minus_Ten_Percent", "Minus_Twenty_Percent",
"Minus_Thirty_Percent", "Minus_Fifty_Percent", "Minus_One_Hundred_Percent",
"Minus_Two_Hundred_Percent",
"Minus_Five_Hundred_Percent"
};
for (int i = 0; i < termList.Length; i++)
{
ShockInputData shockInputData = new ShockInputData();
shockInputData.ShockValueTypeID = (int)LookupItems.VALUE_TYPE_PERCENTAGE;
shockInputData.ShockValue = termList[i];
shockInputData.ShockModeID = (int)LookupItems.SHOCK_MODE_ADD;
shockInputData.ShockScope = "ALL";
shockInputData.ShockFlag = Constants.SHOCK_YES;
shockInputData.ShockType = "MarketPrice";
Psvc.GenerateStressedTranCashflowByDatesWithShock(computeDate, computeDate, computeDate,
computeDate, shockInputData, "STRESS_TEST_STATIC");
payoffComputationService.ComputeTransactionPayoffByDate(computeDate, "STRESS_TEST_STATIC");
string sql =
"select t.portfolio_id as ITEM_ID,t.transaction_id ,t.transaction_sub_id,t.as_of_date as COMPUTE_DATE,po.portfolio_name,round(sum(t.mark_to_market_value),2) " +
nameList[i] +
" from tran_payoff t " +
"inner join bas_portfolio po on po.portfolio_id=t.portfolio_id" +
" where t.result_use_type = 'STRESS_TEST_STATIC' and as_of_date=:ComputeDate" +
" group by t.portfolio_id,t.as_of_date,t.transaction_id,t.transaction_sub_id,po.portfolio_name";
QueryInfo dsInfo = new QueryInfo();
dsInfo.CustomSQL = sql;
dsInfo.AddParam("ComputeDate",computeDate);
DataSet tempSet = Dao.ExcuteDataSet(dsInfo);
tempSet.Tables[0].PrimaryKey = new[]
{
tempSet.Tables[0].Columns[0],
tempSet.Tables[0].Columns[1],
tempSet.Tables[0].Columns[2],
tempSet.Tables[0].Columns[3]
};
if (i == 0)
{
dt = tempSet.Tables[0];
}
else
{
dt.Merge(tempSet.Tables[0]);
}
}
var resultList = dt.ToList<RskStaticStressTest>();
QueryInfo deleteInfo = new QueryInfo();
deleteInfo.CustomSQL = "delete from RskStaticStressTest where ComputeDate=:ComputeDate";
deleteInfo.Parameters.Add("ComputeDate", computeDate);
Dao.ExecuteUpdate(deleteInfo);
Dao.SaveOrUpdateAll(resultList);
ASPxGridView1.DataSource = dt;Session["rsk_staticstress_dev"] = dt;
ASPxGridView1.DataBind();
#endregion
//Page.ClientScript.RegisterClientScriptBlock(JSUtil.CurrentPage.GetType(), Util.NewGuid(), @"<script>DataGrid.WaitMessage(‘正在加载数据,请稍后。。’);</script>");
//Thread.Sleep(5000);
//Page.ClientScript.RegisterClientScriptBlock(JSUtil.CurrentPage.GetType(), Util.NewGuid(), @"<script> DataGrid.RemoveWaitMessage();</script>");
Page.ClientScript.RegisterClientScriptBlock(JSUtil.CurrentPage.GetType(), Util.NewGuid(), @"<script>$.messager.alert('操作提示', '计算成功!');</script>");
}
DataTable 设置primarykey 后进行 Merge操作的更多相关文章
- Primefaces dataTable设置滚动条问题
primefaces dataTable设置滚动条后不论有几行数据都会有滚动条的位置,当数据所占高度大于scrollHeight设定的值时才会出现滚动条,问题是,没有出现滚动条时,预留滚动条的位置不仅 ...
- jquery datatable设置垂直滚动后,表头(th)错位问题
jquery datatable设置垂直滚动后,表头(th)错位问题 问题描述: 我在datatable里设置:"scrollY": '300px',垂直滚动属性后,表头的宽度就会 ...
- 树莓派 Learning 002 装机后的必要操作 --- 07 设置静态IP地址
树莓派 装机后的必要操作 之 设置静态IP地址 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 为了避免IP变来变去,我们将IP地址设置为静 ...
- 解决Button设置disabled后无法执行后台代码问题
一.开始调式下面的程序,发现Button在js中设置disabled后无法执行后台代码(btnsave_Click)问题 <asp:Button ID="btnsave" r ...
- 怎样为DataTable设置主键及找行数据
只要是数据集中都应该存在主键,以确定数据集中唯一的值.那么,我们要如何为DataTable设置主键及利用主键在DataTable索引值呢? 步骤/方法 为DataTable设置主键 DataT ...
- 基于NopCommerce的开发框架——缓存、网站设置、系统日志、用户操作日志
最近忙于学车,抽时间将Nop的一些公用模块添加进来,反应的一些小问题也做了修复.另外有园友指出Nop内存消耗大,作为一个开源电商项目,性能方面不是该团队首要考虑的,开发容易,稳定,代码结构清晰简洁也是 ...
- 安装Ubuntu 18.04后的一些操作
安装Ubuntu 18.04后的一些操作 1.设置root密码 sudo passwd 2.登陆root(输入密码后看到井号就是切换成为root账户) su 3.删除预装 apt-get remove ...
- C# DataTable导出EXCEL后身份证、银行卡号等长数字信息显示乱码解决
在DataTable导出EXCEL后发现有些格式显示有问题,比如身份证.银行卡号等大于11位的数字显示为科学计数法.13681-1等 带中划线的两段数字显示为日期格式等. 处理方法如下: public ...
- eclipse如何设置编译后target目录不提交svn服务器
eclipse设置 windows ->prefrences->team->Ignored Resource 点击Add Pattern 输入 */target/* 等 ...
随机推荐
- Linq:从List列表中查询数据(Where查询)
获取List<Customer> customerList的函数见:http://www.cnblogs.com/yf2011/p/3369927.html 输出List中Berlin城市 ...
- flask+mongodb开发restful API
Mac上安装mongodb 的方法:http://www.cnblogs.com/junqilian/p/4109580.html 实现博客的步骤 详细讲解步骤:https://blog.igevin ...
- SSM框架——整合搭建流程
1.首先创建maven工程,使用哪种方式进行创建都可以,可以参考博主之前的文章: <两种方式创建Maven项目[方式二]><两种方式创建Maven项目[方式一]> 2.先看看搭 ...
- 前端mvc mvp mvvm 架构介绍(vue重构项目一)
首先 我们为什么重构这个项目 1:我们现有的技术是前后台不分离,页面上采用esayUI+jq构成的单页面,每个所谓的单页面都是从后台胜场的唯一Id 与前端绑定,即使你找到了那个页面元素,也找不到所在的 ...
- Windows下查看什么进程占用文件
任务管理器→性能Tab→资源管理器→CPU→关联的句柄后面的检索框中录入文件名(关键文件夹即可). 比如我的是在删除tomcat下面的WEB-INF文件出现问题:就输入WEB-INF:mygod,发现 ...
- VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法
1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序 (DLL.EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dl ...
- BROCADE交换机配置
BROCADE交换机配置一 与交换机交互,可以使用三种方式: 串口 以太网口 光纤口 缺省的串口参数是:9600,N,8,1 缺省IP访问方式是: IP地址: 10.77.77.77 用户名: adm ...
- Excel开发学习笔记:根据工作表worksheet内容控制按钮的状态
开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序. 在Ribbon工具栏中有2个功能按钮,它们是否可用取决于workshe ...
- python开发进程:互斥锁(同步锁)&进程其他属性&进程间通信(queue)&生产者消费者模型
一,互斥锁,同步锁 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的, 竞争带来的结果就是错乱,如何控制,就是加锁处理 part1:多个进程共享同一打印终 ...
- 第2章 深入分析java I/O的工作机制(上)
java的I/O操作类在包java.io下,大致分成4组: 所有文件的存储都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再存储这些字节到磁盘.在读取文件时,也是一个 ...