zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    HDU 2888 Check Corners (模板题)【二维RMQ】
    POJ 3264 Balanced Lineup(模板题)【RMQ】
    poj 3368 Frequent values(经典)【RMQ】
    SPOJ RPLN (模板题)(ST算法)【RMQ】
    UVA 796 Critical Links(模板题)(无向图求桥)
    UVA 315 Network (模板题)(无向图求割点)
    POJ 2029 Get Many Persimmon Trees (模板题)【二维树状数组】
    poj 3067 Japan 【树状数组】
    POJ 2481 Cows 【树状数组】
    POJ 1195 Mobile phones【二维树状数组】
  • 原文地址:https://www.cnblogs.com/byvar/p/3747085.html
Copyright © 2011-2022 走看看