http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4796|回复: 7

[功能帮助类] [SqlHelper] 看大家都在发,我也发出我写的,欢迎指教。

[复制链接]
发表于 2013-9-28 18:25:36 | 显示全部楼层 |阅读模式
本帖最后由 xiaomu 于 2013-9-29 13:43 编辑

看大家都在发,我也发出我写的,小学毕业,自学成渣,欢迎指教。
  1. class SqlHelper//by.穆建情 2013-09-28
  2.     {
  3.         #region //SqlConnectionStr
  4.         /// <summary>
  5.         /// 数据库连接字符串
  6.         /// </summary>
  7.         private static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;

  8.         #endregion

  9.         #region //ExecteQuery

  10.         /// <summary>
  11.         /// 执行 Transact-SQL 查询语句并返回DataTable.
  12.         /// </summary>
  13.         /// <param name="sqlStr">存储过程或者T-SQL语句</param>
  14.         /// <param name="Parameters">以数组形式提供SqlCommand命令中的参数</param>
  15.         /// <returns>返回一个查询结果集DataTable</returns>
  16.         public static DataTable ExecteTable(string sqlStr, params SqlParameter[] Parameters)
  17.         {
  18.             using (SqlConnection conn = new SqlConnection(connStr))
  19.             {
  20.                 conn.Open();
  21.                 using (SqlCommand cmd = conn.CreateCommand())
  22.                 {
  23.                     cmd.CommandText = sqlStr.Trim();
  24.                     cmd.Parameters.AddRange(Parameters);
  25.                     using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
  26.                     {
  27.                         DataTable dt = new DataTable();
  28.                         adapter.Fill(dt);
  29.                         return dt;
  30.                     }
  31.                 }
  32.             }
  33.         }

  34.         /// <summary>
  35.         /// 执行 Transact-SQL 查询语句并返回DataTable.
  36.         /// </summary>
  37.         /// <param name="sqlStr">存储过程或者T-SQL语句</param>
  38.         ///<param name="cmdType">SqlCommand命令类型 (存储过程,T-SQL语句,等等.)</param>
  39.         /// <param name="Parameters">以数组形式提供SqlCommand命令中的参数</param>
  40.         /// <returns>返回一个查询结果集DataTable</returns>
  41.         public static DataTable ExecteTable(string sqlStr, CommandType cmdType, params SqlParameter[] Parameters)
  42.         {
  43.             using (SqlConnection conn = new SqlConnection(connStr))
  44.             {
  45.                 conn.Open();
  46.                 using (SqlCommand cmd = conn.CreateCommand())
  47.                 {
  48.                     cmd.CommandText = sqlStr.Trim();
  49.                     cmd.CommandType = cmdType;
  50.                     cmd.Parameters.AddRange(Parameters);
  51.                     using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
  52.                     {
  53.                         DataTable dt = new DataTable();
  54.                         adapter.Fill(dt);
  55.                         return dt;
  56.                     }
  57.                 }
  58.             }
  59.         }

  60.         /// <summary>
  61.         /// 执行 Transact-SQL 查询语句并返回DataSet.
  62.         /// </summary>
  63.         /// <param name="cmdText">存储过程或者T-SQL语句</param>
  64.         /// <param name="Parameters">以数组形式提供SqlCommand命令中的参数</param>
  65.         /// <returns>返回一个查询结果集DataSet</returns>
  66.         public static DataSet ExecteDataSet(string sqlStr, params SqlParameter[] Parameters)
  67.         {
  68.             using (SqlConnection conn = new SqlConnection(connStr))
  69.             {
  70.                 conn.Open();
  71.                 using (SqlCommand cmd = conn.CreateCommand())
  72.                 {
  73.                     cmd.CommandText = sqlStr.Trim();
  74.                     cmd.Parameters.AddRange(Parameters);
  75.                     using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
  76.                     {
  77.                         DataSet ds = new DataSet();
  78.                         adapter.Fill(ds);
  79.                         return ds;
  80.                     }
  81.                 }
  82.             }
  83.         }

  84.         /// <summary>
  85.         /// 执行 Transact-SQL 查询语句并返回DataSet.
  86.         /// </summary>
  87.         /// <param name="cmdText">存储过程或者T-SQL语句</param>
  88.         /// <param name="cmdType">SqlCommand命令类型 (存储过程,T-SQL语句,等等.)</param>
  89.         /// <param name="Parameters">以数组形式提供SqlCommand命令中的参数</param>
  90.         /// <returns>返回一个查询结果集DataSet</returns>
  91.         public static DataSet ExecteDataSet(string sqlStr, CommandType cmdType, params SqlParameter[] Parameters)
  92.         {
  93.             using (SqlConnection conn = new SqlConnection(connStr))
  94.             {
  95.                 conn.Open();
  96.                 using (SqlCommand cmd = conn.CreateCommand())
  97.                 {
  98.                     cmd.CommandText = sqlStr.Trim();
  99.                     cmd.CommandType = cmdType;
  100.                     cmd.Parameters.AddRange(Parameters);
  101.                     using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
  102.                     {
  103.                         DataSet ds = new DataSet();
  104.                         adapter.Fill(ds);
  105.                         return ds;
  106.                     }
  107.                 }
  108.             }
  109.         }

  110.         /// <summary>
  111.         /// 执行 Transact-SQL 查询语句并返回SqlDataReader.
  112.         /// </summary>
  113.         /// <param name="cmdText">存储过程或者T-SQL语句</param>
  114.         /// <param name="Parameters">以数组形式提供SqlCommand命令中的参数</param>
  115.         /// <returns>返回一个SqlDataReader</returns>
  116.         public static SqlDataReader ExecteReader(string sqlStr, params SqlParameter[] Parameters)
  117.         {
  118.             SqlConnection conn = new SqlConnection(connStr);
复制代码

Oracle_SqlHelper.rar

3.48 KB, 下载次数: 185, 下载积分: 金钱 -1

里面包含SqlHelper、OracleHelper



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-9-28 18:41:42 | 显示全部楼层
本帖最后由 xiaomu 于 2013-9-29 09:49 编辑

由于帖子长度限制不能完全发出,完整代码打包附件了。
另外谢谢"站长苏飞 "提出的一处bug。{:soso_e121:}
发表于 2013-9-29 08:03:05 | 显示全部楼层
[code=csharp]/// <summary>
        /// 执行 Transact-SQL 查询语句并返回SqlDataReader.
        /// </summary>
        /// <param name="cmdText">存储过程或者T-SQL语句</param>
        /// <param name="cmdType">SqlCommand命令类型 (存储过程,T-SQL语句,等等.)</param>
        /// <param name="Parameters">以数组形式提供SqlCommand命令中的参数</param>
        /// <returns>返回一个SqlDataReader</returns>
        public static SqlDataReader ExecteReader(string sqlStr, CommandType cmdType, params SqlParameter[] Parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sqlStr.Trim();
                    cmd.CommandType = cmdType;
                    cmd.Parameters.AddRange(Parameters);
                    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    return reader;
                }
            }
        }[/code]
这个方法你应该是从来都没有用过吧,
SqlDataReader 里都使用Using把SqlConnection都关闭了,还怎么让人读啊。
发表于 2013-9-29 08:04:46 | 显示全部楼层
 楼主| 发表于 2013-9-29 09:32:13 | 显示全部楼层
恩 应该去掉 SqlConnection 的 using
发表于 2013-9-29 09:36:21 | 显示全部楼层
最好把这个参数也加上
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
 楼主| 发表于 2013-9-29 09:47:40 | 显示全部楼层
站长苏飞 发表于 2013-9-29 09:36
最好把这个参数也加上
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

那个必须加哇。加了的
 楼主| 发表于 2013-9-29 12:05:30 | 显示全部楼层
本帖最后由 xiaomu 于 2013-9-29 13:42 编辑

补充一个SqlBulkCopy方法
  1. #region//SqlBulkCopy

  2.         /// <summary>
  3.         /// 批量复制数据到数据库表。
  4.         /// </summary>
  5.         /// <param name="conn">数据库连接对象</param>
  6.         /// <param name="table">DataTable对象,TableName要与目标库中Table名称一致</param>
  7.         /// <returns>成功返回true,失败返回异常</returns>
  8.         public static bool SqlBulkCopy(SqlConnection conn, DataTable table)
  9.         {
  10.             if (conn.State != ConnectionState.Open) { conn.Open(); }
  11.             using (SqlTransaction transaction = conn.BeginTransaction())
  12.             {
  13.                 using (SqlBulkCopy sbc = new SqlBulkCopy(conn, SqlBulkCopyOptions.CheckConstraints, transaction))
  14.                 {
  15.                     try
  16.                     {
  17.                         //sbc.BulkCopyTimeout = 600;
  18.                         sbc.NotifyAfter = table.Rows.Count;
  19.                         sbc.DestinationTableName = table.TableName;
  20.                         sbc.WriteToServer(table);
  21.                         transaction.Commit();
  22.                         return true;
  23.                     }
  24.                     catch (Exception e)
  25.                     {
  26.                         transaction.Rollback();
  27.                         throw new Exception(e.Message);
  28.                     }
  29.                     finally//应该由外部调用时using
  30.                     {
  31.                         conn.Close();
  32.                     }
  33.                 }
  34.             }
  35.         }

  36.         /// <summary>
  37.         /// 批量复制数据到数据库表。
  38.         /// </summary>
  39.         /// <param name="conn">数据库连接对象</param>
  40.         /// <param name="tableName">目标数据库表名</param>
  41.         /// <param name="Reader">SqlDataReader对象</param>
  42.         /// <returns>成功返回true,失败返回异常</returns>
  43.         public static bool SqlBulkCopy(SqlConnection conn, string tableName, SqlDataReader Reader)
  44.         {
复制代码
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 06:52

© 2014-2021

快速回复 返回顶部 返回列表