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库,因此,实现过程中不需要其他任何库,也可以独立开发应用.但是,随着应用程序规模的增大,其需要控 ...
随机推荐
- 监控tcp,占用端口---netstat命令
netstat命令监控tcp,占用端口等等 netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的状态信息,语 法:netstat [ ...
- PHP移动互联网开发笔记(6)——文件的上传下载
一.文件的上传 1.客户端设置: (1).在<form>标签中将enctype和method两个属性指明相应的值. Enctype="multipart/form-data&qu ...
- 支付宝开发之手机网站支付(H5支付)
其实官方的文档中:https://docs.open.alipay.com/203 介绍的已经很详细了,我就实地的看文档操作了一遍,具体步骤如下: 一.创建应用 流程如下: 首先要有支付宝开放平台: ...
- 《Erlang程序设计》学习笔记-第1章 编译并运行程序
http://blog.csdn.net/karl_max/article/details/3976372 1. erlang:halt()可以即刻停止系统运行. 2. q()命令可以完成文件和数据库 ...
- (ubuntu 下)tensorflow 的安装及版本升级
对于 CPU 版本 pip3 install –upgrade tensorflow 对于 GPU 版本: pip3 install –upgrade tensorflow-gpu [TensorFl ...
- 学maven
跟着刚哥深入学maven 前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下. 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是 ...
- [GeekBand] STL 仿函数入门详解
本文参考文献::GeekBand课堂内容,授课老师:张文杰 :C++ Primer 11 中文版(第五版) page 37 :网络资料: 叶卡同学的部落格 http://www.leavesite. ...
- 为什么唱iOS 6.0选择Mantle
近来的mt=8" target="_blank" rel="external">iOS的6.0版本号已经成功上线了. 18人月的投入,2500个 ...
- 防止SQL/XSS攻击
function clean($str) { $str=trim($str); $str=strip_tags($str); $str=stripslashes($str ...
- CMake生成OpenCV解决方案&&编译OpenCV源码
生成OpenCV工程需要用到CMake,所以第一步需要下载CMake软件,下载链接:CMake下载 目前最新的版本是3.7.1,这里选择下载Platform下的Windows win32-x86 ZI ...