博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
erp的核心代码,替代orm
阅读量:7059 次
发布时间:2019-06-28

本文共 3066 字,大约阅读时间需要 10 分钟。

public static SqlParameter[] get_array_list
(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; }

  

转载于:https://www.cnblogs.com/coolyylu/p/9393962.html

你可能感兴趣的文章
Centos下堡垒机Jumpserver V3.0环境部署完整记录(2)-配置篇
查看>>
linux下man手册简介
查看>>
jQuery页面顶部下拉广告
查看>>
Codeforces Round #359 (Div. 1) B. Kay and Snowflake dfs
查看>>
redhat6.2下的ssh密钥免密码登录(原创)
查看>>
Yarn中几个专用名称
查看>>
percona-xtrabackup 文档
查看>>
ssh:Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open
查看>>
Android--ListView下拉刷新
查看>>
php 验证码
查看>>
调整Virtual Box硬盘大小
查看>>
Html form 表单提交前验证
查看>>
win下命令行替代品Cmder
查看>>
Mac Pro 编译安装 Redis-3.2.3
查看>>
DispatcherServlet
查看>>
register_shutdown_function 函数详解
查看>>
chrome https添加信任
查看>>
stm32时钟设置函数
查看>>
session的两个小案例
查看>>
致互联网--那些我浅尝则止的昙花
查看>>