Chinaunix首页 | 论坛 | 博客
  • 博客访问: 527006
  • 博文数量: 88
  • 博客积分: 2256
  • 博客等级: 大尉
  • 技术积分: 921
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-08 23:20
个人简介

积硅步,行千里

文章分类

全部博文(88)

文章存档

2019年(5)

2018年(1)

2016年(15)

2015年(23)

2013年(3)

2012年(6)

2011年(3)

2010年(22)

2009年(10)

我的朋友

分类: C#/.net

2015-03-03 13:57:41

自用的SQLHelper和MySqlHelper,除一些通用方法外,封装了一些很实用的批量操作方法,简单介绍下

SqlHelper

  • ExecuteEmptyDataTable
    获取空表结构,主要用于需要构造DataTable进行大批量数据插入时使用
  • BulkInsert
    大批量数据插入,使用SqlBulkCopy进行大批量数据导入,仅提供了DataTable方式,需要DataReader的请自行重载
  • BatchUpdate
    批量数据更新、插入,使用SqlDataAdapter实现,需要进行较大数据量更新、插入时可以使用此方法,性能还不错
  • BatchUpdate,BatchDelete
    分批次批量删除、更新数据,此方法应用场景较少,用于需要删除、更新大量数据的同时不造成数据库阻塞且不影响数据库订阅、复制延时等
  • ExecutePageDataTable
    通用的分页方法,提供了CTE表达式的支持
  • SqlHelperExtension.cs(ExecuteObject、ExecuteObjects)
    提供了泛型获取对象方法支持,依赖依赖AutoMapper.dll实现,非常在意性能的慎用
  • SqlHelperSchemaExtension.cs
    SqlServer获取数据库、表、索引信息的封装,可以用来辅助写自己的代码生成器,查看数据库索引之类的

MySqlHelper

  • ExecuteEmptyDataTable
    获取空表结构,主要用于需要构造DataTable进行大批量数据插入时使用
  • BulkInsert
    使用MySqlBulkLoader进行大批量数据导入,仅提供了DataTable方式,需要DataReader的请自行重载
  • BatchUpdate
    批量数据更新、插入,使用MySqlDataAdapter实现,需要进行较大数据量更新、插入时可以使用此方法,性能还不错
  • MySqlHelperExtension.csExecuteObject、ExecuteObjects
    提供了泛型获取对象方法支持,依赖依赖AutoMapper.dll实现,非常在意性能的慎用

  • 源码下载备用:
    SQL.rar


*****************************************自用SqlHelper******************************************

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Security;
  6. using System.Data.SqlClient;
  7. ///
  8. /// DBConnection 的摘要说明
  9. ///

  10. public class DBConnection
  11. {
  12.     private static string connectionStr = "Server=datasvr;uid=sa;password=123456;database=KsEastRiver;";
  13.     SqlConnection conn;
  14.     SqlCommand comm = null;
  15.     SqlDataAdapter sda = null;

  16.     public DataSet getDataSet(string sql)
  17.     {
  18.         conn = new SqlConnection(connectionStr);
  19.         sda = new SqlDataAdapter(sql,conn);
  20.         conn.Open();
  21.         DataSet ds = new DataSet();
  22.         try
  23.         {
  24.             sda.Fill(ds);
  25.         }
  26.         catch (Exception ex)
  27.         {
  28.             throw ex;
  29.             //conn.Close();
  30.         }
  31.         finally { conn.Close(); 
  32. }

  33.         return ds;
  34.     }
  35.     public bool getScalar(String sql)
  36.     {
  37.         bool flag = false;
  38.         conn = new SqlConnection(connectionStr);
  39.         comm = new SqlCommand(sql, conn);
  40.         conn.Open();
  41.         int i = int.Parse(comm.ExecuteScalar().ToString());
  42.         if (i != 0)
  43.         {
  44.             flag = true;
  45.         }
  46.         else
  47.         {
  48.             flag = false;
  49.         }
  50.         conn.Close();
  51.         return flag;
  52.     }

  53.     public int update(string sql)
  54.     {
  55.         conn = new SqlConnection(connectionStr);
  56.         comm = new SqlCommand(sql, conn);
  57.         conn.Open();
  58.         int i = 0;
  59.         try
  60.         {
  61.             i = comm.ExecuteNonQuery();
  62.         }
  63.         catch (Exception )
  64.         {
  65.             conn.Close();
  66.         }
  67.         finally
  68.         {
  69.             conn.Close();
  70.         }
  71.         return i;
  72.     }

  73.     public DataTable sqlSelect(string sql)
  74.     {
  75.         conn = new SqlConnection(connectionStr); //将conn连接数据库实例化对象
  76.         conn.Open();//打开数据库对象
  77.         SqlDataAdapter da = new SqlDataAdapter(sql, conn);
  78.         DataTable dt = new DataTable();
  79.         try
  80.         {
  81.             da.Fill(dt);
  82.         }
  83.         catch (Exception ex)
  84.         {
  85.             throw ex;
  86.             //conn.Close();
  87.         }
  88.         finally { conn.Close(); }
  89.         return dt;
  90.     }
  91. }



阅读(1471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~