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>");

}

时间: 2024-10-11 15:59:58

DataTable 设置primarykey 后进行 Merge操作的相关文章

Primefaces dataTable设置滚动条问题

primefaces dataTable设置滚动条后不论有几行数据都会有滚动条的位置,当数据所占高度大于scrollHeight设定的值时才会出现滚动条,问题是,没有出现滚动条时,预留滚动条的位置不仅不美观而且导致表格列的变化问题. 解决此问题的方法是: 第一.测试scrollHeight所设定的高度会容纳几行数据,这里设定scrollHeight='"350"所占的数据行数就是10行. 第二.设定scrollable的条件,当数据行数大于10行时再启用滚动条功能,见下图.

opencv split和merge操作

opencv split和merge操作 分类: OpenCv2014-05-13 09:38 656人阅读 评论(1) 收藏 举报 [cpp] view plaincopyprint? #include<opencv2/opencv.hpp> #include<iostream> #include<cassert> #include<vector> using namespace cv; using namespace std; int main() {

微信公众账户模拟登陆后的一系列操作

<?php header("content-type:text/html;charset=utf-8"); /** * wx_mass * * 完成微信公众账户模拟登陆后的一系列操作 * mass($content) 调用微信群发接口,群发文本信息 * getUserList($page,$pagesize,$group) 获取用户信息 * * 群发demo * * $user=array('account'=>'公众账户名称','password'=>'密码');

在window cmd中设置字符集后,mysql的测试

之前测试过,在centos下,所有字符集全部设为utf8,可以同时满足命令行和网页的需求. 在windows下,由于默认字符集为gbk,所以在命令行操作mysql时,需要设置set character_set_client = gbk; 今天发现,其实是要设置set character_set_results = gbk;即可,其它均为utf8或gbk都行. 另外尝试改变windows字符集,cmd下chcp 65001切换到utf8,但这好像是临时的,由于这次安装的wamp,用的自带的终端,c

解决Button设置disabled后无法执行后台代码问题

一.开始调式下面的程序,发现Button在js中设置disabled后无法执行后台代码(btnsave_Click)问题 <asp:Button ID="btnsave" runat="server" Text="确 定" OnClick="btnsave_Click" OnClientClick="this.disabled = true;alert('提示');" /> 二.有的朋友会认为在

基于NopCommerce的开发框架——缓存、网站设置、系统日志、用户操作日志

最近忙于学车,抽时间将Nop的一些公用模块添加进来,反应的一些小问题也做了修复.另外有园友指出Nop内存消耗大,作为一个开源电商项目,性能方面不是该团队首要考虑的,开发容易,稳定,代码结构清晰简洁也是很重要的一个方面,另外性能的优化也不仅仅是在框架层面.笔者在使用其开发一些中小型的项目,性能还在可以接受范围.前篇——基于nopCommerce的开发框架(附源码):http://www.cnblogs.com/dreling/p/6906688.html. 最新的代码已经同布到GitHub:htt

弹窗后网页不可操作

<!DOCTYPE html><html> <head> <meta charset="UTF-8"><title>弹出窗口后网页不可操作</title> <script src="js/js"></script> <script> function show() //显示隐藏层和弹出层 { var hideobj=document.getElementByI

U-Mail邮件系统切换IP地址后该如何操作?

问:新安装的U-Mail邮件系统,已能正常运行.因与老系统切换,需要改变安装有U-Mail邮件系统软件的 服务器IP地址,我试了一下,只简单地修改服务器的IP地址后还不能正常使用,在浏览器上只能看到IIS的画面,请问还有那些地方需要修改. 我记得安装U-Mail邮件系统时是需要填写IP地址的,要是变更服务器的IP地址不会要我重新安装U-Mail吧. 答: 1.如果只是更换服务器本机的IP.公网IP没有改变. 只需要找到IIS 管理器--- u-mail的webmail网站,右键属性,点击网站--

删除datatable的行后,出现“不能通过已删除的行访问该行的信息”的错误,即DeletedRowInaccessibleException

删除datatable的行后,出现"不能通过已删除的行访问该行的信息"的错误 =========================================================== 采用datatable.Rows[i].Delete()删除行后再访问该表时出现出现"不能通过已删除的行访问该行的信息"的错误.原因如下: Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态