巧用LinqToSql做数据库快速单表备份,增量更新,批量更新等的Sql语句.

不知道大家是否和我一样,经常会面临以下状况:

1、经常被迫要面对手动插入/修改/删除数据的现实,以处理非常紧急的个案.而最让我们头疼的不是SQL语法,往往是字段的数量,一个稍大一点的表里,可能涉及了几十甚至更多的字段,如果让我们手动来写一行insert代码,往往会出错,费神又费力!还很容易出错!

2、现在你手头有数据,需要紧急批量增加/更新,以同步某服务器端的老数据。而服务器又没有开放导数据的端口。

...

碰巧这些问题,我都遇到了,我很想避免出事,于是想到利用LinqToSql+System.Reflection.PropertyInfo替我来做繁琐的工作,工作量比较小,但是觉得有分享的必要。

首先我们要取得原始数据,这个数据从Linq来,这些操作就是拖拖拽拽:

例如,我有个雇员表:

List<Employee> employees = dataContext.Employees.where(c=>c.ID > 10050).ToList();

得到了要更新的数据源后,接下来就是要批量把它们写成Sql语句了,这里我直接用aspx页输出了。

foreach (Employee emp in employees){

  PropertyInfo[] allProperty = emp.GetType().GetProperties();
  string part1 = String.Empty,part2 = String.Empty;//中间需要的字段及值
      for (int i = 0; i < allProperty.Length; i++){
        object newValue = allProperty[i].GetValue(emp, null);
     string newName = allProperty[i].Name;
    part1 += newName + ",";
           part2 += "'" + newValue.ToString() + "',";
       }
       Response.Write(String.Format("insert into Employee({0}) values ({1});<br />",part1.Trim(','),part2.Trim(','))); 

}

 

好了,基本结束!

 现在可以不用担心字段的数量及其值是否对应的问题了,不过还有一个小小的问题,就是如果值里面有‘'’号,是会出错的,建议将其替换掉。

 

转载于:https://www.cnblogs.com/CoreCaiNiao/archive/2011/04/11/2012763.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值