zoukankan      html  css  js  c++  java
  • helpDB

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Web;
      5 using System.Data.SqlClient;//连接数据库必须的
      6 using System.Configuration;
      7 using System.Data.Sql;
      8 using System.Data.SqlClient;
      9 using System.Data;
     10 
     11 /// <summary>
     12 /// sqlHelp 的摘要说明
     13 /// 数据库访问助手类
     14 /// </summary>
     15 public class sqlHelp
     16 {
     17     //获取数据库连接字符串,属于静态只读变量,项目中所有文档都可以直接使用但是不能更改
     18     public static readonly string ConnectionStringLcalTransaction = ConfigurationManager.ConnectionStrings["stdInfoConnectionString"].ConnectionString;
     19     /// <summary>
     20     /// 执行一个不需要返回值的sqlcommand命令,通过制定专用的连接字符串
     21     /// 使用参数组形式提供参数列表
     22     /// </summary>
     23     /// <remarks>
     24     /// 使用示例:
     25     /// int result=ExecuteNonQuery(connString,CommandType.StoreProcedure,"PublishOrders",new SqlParameter("@prodid",24));
     26     /// </remarks>
     27     /// <param name="connectionString">一个有效数据库链接字符串</param>
     28     /// <param name="commandType">SqlCommand命令类型(存储过程,T-SQL语句等)</param>
     29     /// <param name="commandText">存储过程的名字或者T-SQL语句</param>
     30     /// <param name="commandParameters">以数组的形式提供sqlcommand命令中用到的参数列表</param>
     31     /// <returns>返回一个数值表表示此sqlcommand语句命令后影响的行数</returns>
     32     public static int ExecuteNoneQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
     33     {
     34         SqlCommand cmd = new SqlCommand();
     35         using (SqlConnection conn = new SqlConnection(connectionString)) 
     36         {
     37             //通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中
     38             PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
     39             int val = cmd.ExecuteNonQuery();
     40             //清空SqlCommand中的参数列表
     41             cmd.Parameters.Clear();
     42             return val;
     43         }
     44     }
     45     /// <summary>
     46     /// 执行一条返回结果集的SqlCommand命令,通过换用连接字符串
     47     /// 使用参数数组提供参数
     48     /// </summary>
     49     /// <remarks>
     50     /// 使用示例:
     51     /// SqlDataReader r=EcecuteReader(connString,CommandType.StoredProcedure,"PublishOrders",new SleParameter("@prodid",24));
     52     /// </remarks>
     53     /// <param name="connectionSting">一个有效的数据库连接字符串</param>
     54     /// <param name="commandType">SqlCommand命令类型(存储过程,T-SQL语句等)</param>
     55     /// <param name="comandText">存储过程的名字或者T-SQL语句</param>
     56     /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
     57     /// <returns>返回一个包含结果的SqlDataReader</returns>
     58     public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType,string cmdText,params SqlParameter[] commandParameters)
     59     {
     60         SqlCommand cmd = new SqlCommand();
     61         SqlConnection conn = new SqlConnection(connectionString);
     62         //使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在,
     63         //触发的异常由catch捕获。
     64         //关闭数据连接,并通过throw再次引发捕捉到的异常
     65         try
     66         {
     67             PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
     68             SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
     69             cmd.Parameters.Clear();
     70             return rdr;
     71         }
     72         catch
     73         {
     74             conn.Close();
     75             throw;
     76         }
     77     }
     78     /// <summary>
     79     /// 执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串
     80     /// 使用参数数组提供参数
     81     /// </summary>
     82     /// <remarks>
     83     /// 使用示例:
     84     /// Object obj=ExecuteScalar(connString,CommandType.StoredProcedure,"PublishOrders",new SqlParameter("@prodid",24));
     85     /// </remarks>
     86     /// <param name="connectionSting">一个有效的数据库连接字符串</param>
     87     /// <param name="commandType">SqlCommand命令类型(存储过程,T-SQL语句等)</param>
     88     /// <param name="comandText">存储过程的名字或者T-SQL语句</param>
     89     /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
     90     /// <returns>返回一个object类型的数据,可以通过Conver.To{Type}方法转换类型</returns>
     91     public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
     92     {
     93         SqlCommand cmd = new SqlCommand();
     94         using (SqlConnection connection = new SqlConnection(connectionString))
     95         {
     96             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
     97             object val = cmd.ExecuteScalar();
     98             cmd.Parameters.Clear();
     99             return val;
    100         }
    101     }
    102     /// <summary>
    103     /// 为执行命令准备参数
    104     /// </summary>
    105     /// <param name="cmd">SqlCommand命令</param>
    106     /// <param name="conn">已存在的数据库连接</param>
    107     /// <param name="trans">数据库事物处理</param>
    108     /// <param name="cmdType">SqlCommand命令类型(存储过程,T-SQL语句等)</param>
    109     /// <param name="cmdText">Cmmand text,T-SQL语句 
    110     /// 例如:Select * from Products
    111     /// </param>
    112     /// <param name="cmdParms">返回带参数的命令</param>
    113     private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText,SqlParameter[]cmdParms)
    114     {
    115         //判断数据库连接状态
    116         if (conn.State != ConnectionState.Open)
    117             conn.Open();
    118         cmd.Connection = conn;
    119         cmd.CommandText = cmdText;
    120         //判断是否需要事物处理
    121         if (trans != null)
    122             cmd.Transaction = trans;
    123         cmd.CommandType = cmdType;
    124         if (cmdParms != null)
    125         {
    126             foreach (SqlParameter parm in cmdParms)
    127                 cmd.Parameters.Add(parm);
    128         }
    129     }
    130     public sqlHelp()
    131     {
    132         //
    133         // TODO: 在此处添加构造函数逻辑
    134         //
    135     }
    136 }
  • 相关阅读:
    feign远程调用问题
    java8--stream
    feign业务组件远程请求 /oauth/token
    redis实现自增序列
    MySQL数据库 相关知识点
    netty
    spring的启动流程及bean的生命周期
    MethodHandleVS反射
    并发与并行
    关于注解的思考
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/5191005.html
Copyright © 2011-2022 走看看