erp的核心代码,替代orm
public static SqlParameter[] get_array_list<T>(ArrayList rows) where T : class
{
Hashtable sql_add = new Hashtable();
Hashtable sql_update = new Hashtable();
Hashtable sql_delete = new Hashtable(); string zsql = ""; int ka = 0, ku = 0, kd = 0;
foreach (Hashtable row in rows)
{ zsql += " select "; PropertyInfo[] properties = typeof(T).GetProperties();
foreach (PropertyInfo p in properties)
{ if (row[p.Name] != null)
{
string zdel_c = Get_Deli(p.PropertyType, row[p.Name].ToString());
zsql += zdel_c + Get_Value(p.PropertyType, row[p.Name].ToString()) + zdel_c + " as [" + p.Name + "] " + ",";
}
else
{ zsql += Get_Default_Value(p.PropertyType) + " as [" + p.Name + "] " + ",";
} }
zsql = zsql.Substring(0, zsql.Length - 1);
String state = row["_state"] != null ? row["_state"].ToString() : "";
if (state == "added")
{
sql_add[ka.ToString()] = zsql;
ka++;
}
if (state == "modified")
{
sql_update[ku.ToString()] = zsql;
ku++;
} if (state == "removed" || state == "deleted")
{
sql_delete[kd.ToString()] = zsql;
kd++;
}
zsql = "";
} SqlParameter[] result = {
new SqlParameter("@username" , SqlDbType.NText),
new SqlParameter(string.Format("@e{0}_add_array" ,typeof(T).Name), SqlDbType.NText),
new SqlParameter(string.Format("@e{0}_update_array" ,typeof(T).Name), SqlDbType.NText),
new SqlParameter(string.Format("@e{0}_delete_array" ,typeof(T).Name), SqlDbType.NText)
}; zsql = "";
for (int k = 0; k < sql_add.Count; k++)
{
zsql += sql_add[k.ToString()].ToString();
if (k < sql_add.Count - 1) zsql += "\n union all \n";
}
result[1].Value = zsql; zsql = "";
for (int k = 0; k < sql_update.Count; k++)
{
zsql += sql_update[k.ToString()].ToString();
if (k < sql_update.Count - 1) zsql += "\n union all \n";
}
result[2].Value = zsql; zsql = "";
for (int k = 0; k < sql_delete.Count; k++)
{
zsql += sql_delete[k.ToString()].ToString();
if (k < sql_delete.Count - 1) zsql += "\n union all \n";
}
result[3].Value = zsql; return result; }
erp的核心代码,替代orm的更多相关文章
- Android发送短信核心代码
核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...
- [html5+java]文件异步读取及上传核心代码
html5+java 文件异步读取及上传关键代码段 功能: 1.多文件文件拖拽上传,file input 多文件选择 2.html5 File Api 异步FormData,blob上传,图片显示 3 ...
- 【五子棋AI循序渐进】关于VCT,VCF的思考和核心代码
前面几篇发布了一些有关五子棋的基本算法,其中有一些BUG也有很多值得再次思考的问题,在框架和效果上基本达到了一个简单的AI的水平,当然,我也是初学并没有掌握太多的高级技术.对于这个程序现在还在优化当中 ...
- .NET核心代码保护策略-隐藏核心程序集
经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德高人的.想想还是算了,那样估计会引来新一波 ...
- 处理部分WordPress核心代码或功能,让你的网站更快
处理部分WordPress核心代码或功能,让你的网站更快 http://www.wpdaxue.com/speed-up-wordpress.html
- OC 冒泡排序 -- 核心代码
//冒泡 核心代码 for (int i = 0; i < array.count - 1; i++) { int a = [array[i] intValue]; for (int j = i ...
- .NET核心代码保护策略
.NET核心代码保护策略-隐藏核心程序集 经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德 ...
- js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。
1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...
- 学习Redux之分析Redux核心代码分析
1. React,Flux简单介绍 学习React我们知道,React自带View和Controller库,因此,实现过程中不需要其他任何库,也可以独立开发应用.但是,随着应用程序规模的增大,其需要控 ...
随机推荐
- 【HDU5748】Bellovin
Description Peter has a sequence and he define a function on the sequence -- , where is the length ...
- iOS Animation具体解释
iOS Animation具体解释 本篇仅仅要解说iOS中动画的使用. Animtion主要分为两类:UIView动画和CoreAnimation动画. UIView动画有UIView属性动画,UIV ...
- ssh连接上腾讯云、华为云Linux服务器,一会就自动断开
客户端向服务端发送心跳 依赖 ssh 客户端定时发送心跳,putty.SecureCRT.XShell 都有这个功能. Linux / Unix 下,编辑 ssh 配置文件: # vim /etc/s ...
- 【codeforces 546D】Soldier and Number Game
time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- IT咨询服务-客户案例(四):根据图片等素材,动态生成个性化图片
最近,慕名而来一个客户. 客户的目标 网站来一个用户,选择模版,上传图片等素材,生成自定义的图片,或者静态网站,然后分享到社交网站.有点类似于,网上制作名片,选择模版,输入个人信息,生成名片的设 ...
- findbugs静态代码分析工具使用教程
FindBugs 是一个静态分析工具,很多程序猿都在使用,再次详细列出findbugs的使用教程,希望对大家有帮助. 1 安装 FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行 ...
- 【u127】台阶问题
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式 ...
- node与webpack的process.env.NODE_ENV
先看两篇文章 1.前端工程项目的NODE_ENV 2. Node 环境变量 process.env.NODE_ENV 之webpack应用 3.process.env.NODE_ENV 下面全部是在w ...
- Android Studio入门(安装-->开发调试)
写在前面的话:本文来源:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–&g ...
- 美国是一个"愚蠢而落后的国度"--大家千万别去
看到一篇文章,写的很诙谐风趣,已经被转载无数遍但却不知道原出处.读过之后又值得我们深思.和大家一起分享: 来美国已多时了.我后悔当初的选择.一直都被西方媒体所蒙蔽欺骗,让我错误地以为美国是一个现代化国 ...