• SQLHelper


      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Data.SqlClient;
      6 using System.Data;
      7 using System.Configuration;
      8 
      9 namespace 通过sqlhelper实现登录
     10 {
     11     //因为以后这些方法要直接使用,不需要再实例化 所以使用静态类
     12     public static class SqlHelper
     13     {
     14         /// <summary>
     15         /// 拿到连接字符串//读取配置文件,首先要添加windows.Configuration的引用
     16         /// </summary>
     17         /// readonly 只读变量 运行的时候才能给它赋值,一旦给它赋值以后除了在类的构造函数里面以外,绝对不能再给它改值了
     18         private static readonly string connStr = ConfigurationManager.ConnectionStrings["xudaxia"].ConnectionString;
     19 
     20         //封装常用方法
     21 
     22         //1.执行Insert/delete/update的方法
     23         //参数1 执行的sql语句  参数2:执行的类型 参数3:不论是存储过程还是带参数的sql语句都有可能带多个参数或无参  所以使用可变参数
     24         //ExecuteNonQuery这个方法执行会返回要数据库中所影响的行数,是返回的如果大于0就成功。
     25         public static int ExecuteNonQuery(string sql, CommandType cmdType, params SqlParameter[] pms)
     26         {
     27             using (SqlConnection con = new SqlConnection(connStr))
     28             {
     29                 using (SqlCommand cmd = new SqlCommand(sql, con))
     30                 {
     31                     //设置当前执行的是存储过程还是带参数的sql语句
     32                     cmd.CommandType = cmdType;
     33                     //cmd.Parameters.AddRange(pms);
     34                     //判断如果用户传过来的数组是null 就不自动加 如果不是 就加
     35                     if (pms != null)
     36                     {
     37                         cmd.Parameters.AddRange(pms);
     38                     }
     39                     con.Open();
     40                     return cmd.ExecuteNonQuery();
     41                 }
     42             }
     43         }
     44 
     45         //2.执行返回单个值的方法
     46         //ExecuteScalar:执行查询,并返回查询所返回的结果集中第一行的第一列或空引用(如果结果集为空).忽略其他列或行.
     47         public static object ExecuteScalar(string sql, CommandType cmdType, params SqlParameter[] pms)
     48         {
     49             using (SqlConnection con = new SqlConnection(connStr))
     50             {
     51                 using (SqlCommand cmd = new SqlCommand(sql, con))
     52                 {
     53                     //设置当前执行的是存储过程还是带参数的sql语句
     54                     cmd.CommandType = cmdType;
     55                     // cmd.Parameters.AddRange(pms);
     56                     //判断如果用户传过来的数组是null 就不自动加 如果不是 就加
     57                     if (pms != null)
     58                     {
     59                         cmd.Parameters.AddRange(pms);
     60                     }
     61                     con.Open();
     62                     return cmd.ExecuteScalar();
     63                 }
     64             }
     65         }
     66 
     67         //3.返回SqlDataReader的方法
     68         //DataReader是一行一行的读取记录的。当记录中有数据时Read()返回TRUE,当到记录集底部时返回FALSE。
     69         public static SqlDataReader ExecuteReader(string sql, CommandType cmdType, params SqlParameter[] pms)
     70         {
     71 
     72             SqlConnection con = new SqlConnection(connStr);
     73 
     74             using (SqlCommand cmd = new SqlCommand(sql, con))
     75             {
     76                 cmd.CommandType = cmdType;
     77                 if (pms != null)
     78                 {
     79                     cmd.Parameters.AddRange(pms);
     80                 }
     81                 try
     82                 {
     83                     con.Open();
     84                     return cmd.ExecuteReader(CommandBehavior.CloseConnection);
     85                 }
     86                 catch
     87                 {
     88                     con.Close();
     89                     con.Dispose();
     90                     throw;
     91                 }
     92 
     93             }
     94         }
     95 
     96         //4.返回DataTable
     97         public static DataTable ExecuteDataTable(string sql, CommandType cmdType, params SqlParameter[] pms)
     98         {
     99             DataTable dt = new DataTable();
    100             using (SqlDataAdapter adapter = new SqlDataAdapter(sql, connStr))
    101             {
    102                 adapter.SelectCommand.CommandType = cmdType;
    103                 if (pms != null)
    104                 {
    105                     adapter.SelectCommand.Parameters.AddRange(pms);
    106                 }
    107                 adapter.Fill(dt);
    108                 return dt;
    109             }
    110         }
    111     }
    112 }
  • 相关阅读:
    ABP框架系列之三十:(Javascript-API-Javascript-API)
    MES制造执行系统
    ABP框架系列之二十九:(Hangfire-Integration-延迟集成)
    2017年总结
    ABP框架系列之二十八:(Handling-Exceptions-异常处理)
    ABP框架系列之二十七:(Feature-Management-特征管理)
    ABP框架系列之二十六:(EventBus-Domain-Events-领域事件)
    ABP框架系列之二十五:(Embedded-Resource-Files-嵌入式资源文件)
    mac pro使用2K(2056*1440)设置屏幕解决方法
    DevOps 转型到底难不难(转自成哥的世界)
  • 原文地址:https://www.cnblogs.com/byvar/p/3747085.html
Copyright © 2020-2023  润新知