MVC LINQ中用封装的TSQL通用更新方法
把TSQL拿出来,做了一个封装,适用的所有表,更新有两种,普通更新和记数更新
看代码:这两个方法是写在DAL里的数据操作基类里的,只有它的子类可以用它,所以用protected做为限制
/// <summary>
/// 通用更新方法
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="param">参数列表,奇数为字段,偶数为他前一奇数对应的值,索引0为要更新的主键,1为主键值</param>
protected virtual void Update(string tableName, params object[] param)
{
StringBuilder sbSql = new StringBuilder();
List<object> listParasm = new List<object>();
listParasm.Add(param[0]);
listParasm.Add(param[1]);
int index = listParasm.Count;
sbSql.AppendFormat("UPDATE [{0}] SET ", tableName);
if (index == 0)
{
return;
}
else
{
for (int i = 2; i < param.Count(); i += 2)
{
if (param[index + 1].GetType() == typeof(string))
sbSql.AppendFormat("{{{0}}} = '{{{1}}}',", index, index + 1);
else
sbSql.AppendFormat("{{{0}}} = {{{1}}},", index, index + 1);
listParasm.Add(param[index]);
listParasm.Add(param[index + 1]);
index++;
index++;
}
sbSql.Remove(sbSql.Length - 1, 1);//移除最后一个逗号
}
sbSql.Append(" WHERE [{0}] = {1}");
db.ExecuteCommand(sbSql.ToString(), listParasm.ToArray());
}
/// <summary>
/// 计数更新
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="param">参数列表,索引0为主键名,1表主键值,2为要计数的字段,3为增量</param>
protected virtual void UpdateForCount(string tableName, params object[] param)
{
string sql = "update [{0}] set [{3}]=[{3}]+{4} where [{1}]={2}";
List<object> listParasm = new List<object>
{
tableName,
param[0],
param[1],
param[2],
param[3],
};
db.ExecuteCommand(string.Format(sql, listParasm.ToArray()));
}
MVC LINQ中用封装的TSQL通用更新方法的更多相关文章
- Java_jdbc 基础笔记之四 数据库连接 (通用更新方法)
/** * 写一个通用的更新方法 包括 INSERT. DELETE.UPDATE * 使用工具类 * @param sql */ public void update(String sql){ Co ...
- EL表达式无法获取Spring MVC的Model封装好的数据解决方法
1.在spring-mvc的配置文件中已经配置jsp的视图解析器 2.在Controller中使用Model的addAttribute方法添加属性name,msg 3.在jsp页面中使用${msg}取 ...
- asp.net mvc 自定义pager封装与优化
asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自 ...
- 更新xcode后插件失效问题——不针对特定版本的通用解决方法
一.Xcode更新后插件失效的原理 1.每次更新Xcode后插件都会失效,其实插件都还在这个目录好好的躺着呢: ~/Library/Application Support/Developer/Shar ...
- ASP.NET MVC验证框架中关于属性标记的通用扩展方法
http://www.cnblogs.com/wlb/archive/2009/12/01/1614209.html 之前写过一篇文章<ASP.NET MVC中的验证>,唯一的遗憾就是在使 ...
- 运用BeanUtils构建通用的查询 更新方法(个人拙作,不喜勿喷)
------------------------------------更新方法----------------------------------- public void update(Strin ...
- Entity Framework增删改之通用精简方法
用EF用了好长一段时间了,从EF4.0的版本开始接触,感觉这个ORM不能说性能是最好的,但是我个人感觉功能实现以及和mvc的结合还是一个不错的企业级网站的解决方案,在此写个简易的通用扩展方法来方便大家 ...
- ASP.NET MVC 3 之表单和 HTML 辅助方法(摘抄)
——选自<ASP.NET MVC3 高级编程(第5章) 孙远帅 译> 第5章 表单和HTML辅助方法 本章内容简介: * 理解表单 * 如何利用HTML辅助方法 * 编辑和输入的辅助方法 ...
- MVC中view和controller相互传值的方法
MVC项目中,在view层如果使用前台框架,框架中会有封装好的相互传值方法.但是,那些postdata[][]方法不一定能够满足功能需求,反而一些常用的传值方法可能会刚好解决它们的不足.总结如下: 一 ...
随机推荐
- 执行sql update use c#
今天犯了个大错 public static void ChangeGoodsCounts(int GoodsID, int changCounts) { int lastCount; using (S ...
- 关注LoadRunner脚本回放日志中的Warning信息-转载
关注LoadRunner脚本回放日志中的Warning信息 最近在与大家的讨论中发现了LoadRunner的很多问题,出于解决问题的出发点,我也就相关自己不理解的问题在Google中搜索了一番,并 ...
- 多线程模式之MasterWorker模式
多线程模式之MasterWorker模式 Master-Worker模式的核心思想是,系统由两类进程协作工作:Master进程和Worker进程.Master进程负责接收和分配任务,Worker进程负 ...
- [NOIP1998]最大数
1998年NOIP全国联赛提高组 题目描述 设有n个正整数 (n<=20), 将它们连接成一排, 组成一个最大的多位整数.例如: n=3时, 3个整数13, 312, 343连接成的最大整数为 ...
- 【HTML】Beginner4:Heading
1.Headings h1 h2 h3 h4 h5 h6 h1 being the almighty emperor of headings h6 being the lowest p ...
- HW5.18
public class Solution { public static void main(String[] args) { System.out.printf("%s\t%s\n&qu ...
- HW2.4
import java.util.Scanner; public class Solution { public static void main(String[] args) { final dou ...
- HDOJ-ACM1014(JAVA)
这道题题意: 求最大公约数,最大公约数是1,则GOOD,否则BAD 注意: 输出时,如果是System.out.printf("%10d%10d Good Choice\n\n&quo ...
- 《算法:C语言实现》阅读笔记
//从今天起准备认真看完这本书.本渣虽然笨,但是窝懒啊.... //今天开始看第一章.希望坚持下去. 第一章 引言 通过讨论连通问题的几种算法,来引出算法的重要性. 1.1 连通问题的快速查找算法 感 ...
- Oracle数据库自我总结(转)
Oracle数据库自我总结 1.Oracle连接远程服务器,需要安装客户端的同时需要覆盖D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora ...