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/* 等 ...
随机推荐
- Windows编程
本文整理自百科.知乎与 科学家的世界 问题一:为什么开发windows应用程序不用c 而用.net,java,c++? 用 c+windows API 开发windows 应用程序 比用.net, ...
- WCF Restful 服务 Get/Post请求
Restful Get方式请求: Restful服务 Get请求方式:http://localhost:10718/Service1.svc/Get/A/B/C http://localhost:1 ...
- 洛谷3778 [APIO2017]商旅
题目:https://www.luogu.org/problemnew/show/P3778 一看就是0/1分数规划.但不能直接套模板,因为有个商品种类的限制. 考虑从a买在b卖,商品种类根本没用,关 ...
- ASP.NET WebApi通过自定义ControllerSelector来自定义Controller的选择
在web api中,我们可以通过给Cotroller类添加RoutePrefixAttribute来定义url与Controller之间的映射,但是有时候有一些特殊情况下,我们需要做一些特殊处理来将某 ...
- Data_Structure-绪论作业
一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算: 构造有理数T,元素e1,e2分别被赋以分子.分母值 销 ...
- go基本数据类型与运算符
GO基本类型1.布尔(bool) 长度:1字节 取值范围:true,false 注意事项:不可用数字代表true或false2.整型(int/uint) 根据平台 肯能为32位或64位3. 8位整型: ...
- java图形化界面-------鼠标监听画圆----------使用匿名类
package com.aa; import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseAdapter; ...
- 爬取豆瓣电影Top250信息
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import requests from pyquery import PyQ ...
- pcs与crmsh命令比较
一.概念 1.crmsh This project is not part of the GNU Project. Pacemaker command line interface for manag ...
- 04.CSS的继承性和层叠性
CSS有两大特性: 继承性和层叠性 继承性 面向对象语言都会存在继承的概念 , 在面向对象语言中, 继承的特点: 继承了父类的属性和方法. 那么 css 就是在设置属性的 , 不会牵扯到方法 ...