zoukankan      html  css  js  c++  java
  • ADO.NET sqlHelper类(DBHelper类)

    1.配置文件

    1   <connectionStrings>
    2     <add name="constr" connectionString="Data Source=.;Initial Catalog=NovelDitle;Integrated Security=True"/>
    3   </connectionStrings>

    2.静态类 命名空间的引入等 

    这里我只写了主要要用到的命名空间

    1 using System.Configuration;
    2 using System.Data;
    3 using System.Data.SqlClient;

    3.私有连接字符串 全局变量

    //私有连接字符串 
           private static string conStr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

    4.写静态方法

    这里的三个参数分别指的是:sql语句 存储过程 可变参数(防sql注入)

    ①//离线查询 返回datatable

     1     public static DataTable ExecuteDataTable(string sql,CommandType cmdType, params SqlParameter[] par)
     2         {
     3             //datatable对象
     4             DataTable dt = new DataTable();
     5 
     6             //用于处理非托管对象。某些类型的非托管对象有数量限制或很消耗系统资源。为了及时释放资源,使用using语句可以确保这些资源适当地处置(dispose)
     7             using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conStr))
     8             {
     9                 //存储过程赋值
    10                 adapter.SelectCommand.CommandType = cmdType;
    11                 //判断参数不为空 长度>0
    12                 if (par != null)
    13                 {
    14                     //向数组参数中添加值
    15                     adapter.SelectCommand.Parameters.AddRange(par);
    16                 }
    17                 //填充数据
    18                 adapter.Fill(dt);
    19                 return dt;//返回值
    20             }
    21         }

    ②//在线查询,返回SqlDataReader

     1  public static SqlDataReader ExecuteDataReader(string sql,CommandType cmdType, params SqlParameter[] par)
     2         {
     3             //SqlConnection要始终保持打开状态 不能使用using释放资源
     4             SqlConnection conn = new SqlConnection(conStr);
     5             
     6             using (SqlCommand com = new SqlCommand(sql, conn))
     7             {
     8                 //存储过程赋值
     9                 com.CommandType = cmdType;
    10 
    11                 //判断参数不为空
    12                  if (par != null)
    13                  {
    14                     //传入参数
    15                      com.Parameters.AddRange(par);
    16                  }
    17                 try
    18                 {
    19                     //如果连接状态关闭
    20                     if (conn.State==ConnectionState.Closed)
    21                     {
    22                         //打开连接
    23                         conn.Open();
    24                     }
    25                     //返回结果  参数:当关闭reader时也关闭SqlConnection
    26                     return com.ExecuteReader(CommandBehavior.CloseConnection);
    27                 }
    28                 catch (Exception)
    29                 {
    30                     //关闭连接
    31                     conn.Close();
    32                     //释放资源
    33                     conn.Dispose();
    34                     throw;//抛出异常
    35                 }     
    36             }
    37         }

    ③增删改操作

     1  public static int ExecuteNonQuery(string sql,CommandType cmdType,params SqlParameter[] par)
     2         {
     3             using (SqlConnection conn = new SqlConnection(conStr))
     4             {
     5                 using (SqlCommand com=new SqlCommand(sql,conn))
     6                 {
     7                     com.CommandType = cmdType;
     8 
     9                     if (par!=null)
    10                     {
    11                         com.Parameters.AddRange(par);
    12                     }
    13                     conn.Open();
    14 
    15                     return  com.ExecuteNonQuery();
    16                 }
    17             }
    18         }

    ④返回单个值

     1  public static object ExecuteScalar(string sql,CommandType cmdType,params SqlParameter[] par)
     2         {
     3             using (SqlConnection conn = new SqlConnection(conStr))
     4             {
     5                 using (SqlCommand com = new SqlCommand(sql, conn))
     6                 {
     7                     com.CommandType = cmdType;
     8 
     9                     if (par != null)
    10                     {
    11                         com.Parameters.AddRange(par);
    12                     }
    13                     conn.Open();
    14 
    15                     return com.ExecuteScalar();
    16                 }
    17             }
    18         }
  • 相关阅读:
    Mac 如何让python默认运行python3.8
    python发送post请求(转)
    Qt 学习(4)
    自定义Qt组件-通讯模块(P3)
    自定义Qt组件-通讯模块(P2)
    自定义Qt组件-通讯模块(P1)
    用 JS 做一个数独游戏(二)
    用 JS 做一个数独游戏(一)
    公交车情况数问题
    传球问题
  • 原文地址:https://www.cnblogs.com/xiemin-minmin/p/11162339.html
Copyright © 2011-2022 走看看