using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//对数据库进行操作引入命名空间
using System.Data;
using System.Data.SqlClient;
using System.Configuration; namespace DAL
{
public class SQLhelper
{ /// 变量定义<summary>
/// </summary>
private SqlConnection conn = null;
private SqlCommand cmd = null;
private SqlDataReader sdr = null; /// SQLhelper connStr 字符串的连接<summary>
/// </summary> public SQLhelper()
{
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //连接SQL数据表
conn = new SqlConnection(connStr); //连接通道 } /// 获取conn<summary>
/// </summary>
/// <returns>为什么要这样写有什么意义呢?</returns>
private SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed) //-判断当前连接的状态 如果当前的连接是关闭状态的话 结果为True
{
conn.Open(); //-打开数据库
} return conn; //返回结果
} /// 该方法传入一个增删改SQL语句或是存储过程<summary>
/// </summary>
/// <param name="sql">要执行的增删改SQL语句或是存储过程</param>
/// <returns>返回更新的记录数</returns>
public int ExecuteNonQuery(string cmdText,CommandType ct)
{
//-执行非查询 比如说 insert Updata Delect
//不定义的时候返回的初值是零
int res;
try
{
//-1、将预见可能引发异常的代码包含在try语句块中。
//-2、如果发生了异常,则转入catch的执行。
cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct;
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
//-这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。
throw ex;
}
finally
{
//-不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally
//-清理工作。如关闭数据库连接。
if (conn.State == ConnectionState.Open)
{
conn.Close();
} }
return res; //-返回给调用者
} /// 执行带参数的增删改语句或是存储过程<summary>
/// 执行带参数的增删改语句或是存储过程
/// </summary>
/// <param name="sql">带参数的SQL语句或是存储过程</param>
/// <param name="paras">参数集合</param>
/// <returns></returns> public int ExecuteNonQuery(string cmdText, SqlParameter[] paras,CommandType ct)
{
int res;
using (cmd = new SqlCommand(cmdText, GetConn()))
{
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras); //将每个查询出的数 添加到数组 res = cmd.ExecuteNonQuery();
} return res; } /// 该方法传入一个查询SQL语句或是存储过程<summary>
/// 该方法传入一个查询SQL语句或是存储过程
/// </summary>
/// <param name="cmtText">SQL查询语句或存储过程</param>
/// <returns></returns>
public DataTable ExecuteQuery(string cmtText,CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmtText, GetConn());
cmd.CommandType = ct;
//关系sdr的同是将会关闭conn
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
} /// 执行带参数的SQL语句或是存储过程<summary>
/// 执行带参数的SQL语句或是存储过程
/// </summary>
/// <param name="cmdText">SQL语句或是存储过程</param>
/// <param name="paras"></param>
/// <returns></returns>
public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras,CommandType ct)
{
DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
//关系sdr的同是将会关闭conn
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
} } }

SqlHelper 带详细中文注释的更多相关文章

  1. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

  2. Mybatis Generator生成数据库自带的中文注释

    1.相关jar包 <!-- mybatis生成 jar包 --> <dependency> <groupId>org.mybatis.generator</g ...

  3. qt下的时钟程序(简单美丽,继承自QWidget的Clock,用timer调用update刷新,然后使用paintEvent作画就行了,超详细中文注释)good

    最近抽空又看了下qt,发现用它来实现一些东西真的很容易比如下面这个例子,绘制了个圆形的时钟,但代码却清晰易懂[例子源自奇趣科技提供的例子]因为清晰,所以就只写注释了,吼吼其实也就这么几行代码头文件 / ...

  4. Light OJ - 1026 - Critical Links(图论-Tarjan算法求无向图的桥数) - 带详细注释

     原题链接   无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 也可以先用Tajan()进行dfs算出所有点 的low和dfn值,并记录dfs过程中每个 点的父节点:然后再把所有点遍历一遍 ...

  5. C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式

    C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...

  6. Php.ini 中文注释详细

    Php.ini 中文注释 这个文件控制了PHP许多方面的观点.为了让PHP读取这个文件,它必须被命名为   ; ´php.ini´.PHP 将在这些地方依次查找该文件:当前工作目录:环境变量PHPRC ...

  7. Mybatis Generator的model生成中文注释,支持oracle和mysql(通过修改源码的方式来实现)

    在看本篇之前,最好先看一下上一篇通过实现CommentGenerator接口的方法来实现中文注释的例子,因为很多操作和上一篇基本是一致的,所以本篇可能不那么详细. 首先说一下上篇通过实现Comment ...

  8. 关闭shift中英文切换 英文代码/中文注释随意切换着写。

    x 背景 写代码的时候总是意外的就切成中文了,特别是代码中大小写切换的这种情况... 例如:"public static TimeZone CurrentTime..."publi ...

  9. [UE4]在C++中使用中文变量和中文注释

    一.如果直接在C++中使用中文变量名称,在UE4中编译是会出错的,方法的中文注释也会在UE4中变成乱码 二.只要将h文件和cpp文件用记事本另存为utf-8编码就可以了. 也可以配置VS环境: 如何解 ...

随机推荐

  1. 【Linux高频命令专题(9)】ls

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...

  2. swift学习笔记-UI篇之UIImageView

    1.基本使用 将要使用的图片拖入到项目里,我这里使用的是名为“1.jpg”的图片,然后创建UIImageView,并设置要显示的图片为"1.jpg"//1. 基本使用 let im ...

  3. ScannerDemo------string int

    import java.util.Scanner;                                                /** *Scanner演示 */ public cl ...

  4. C++:析构函数

    析构函数的特点: 1.析构函数与类名相同,但它前面必须加上波浪号~ 2.析构函数不返回任何值,在定义析构函数时,是不能说明它的类型的,甚至说明void类型也不能 3.析构函数没有参数,因此不能被重载. ...

  5. How to learn linux device driver

    To learn device driver development, like any other new knowledge, the bestapproach for me is to lear ...

  6. HDFS 小文件处理——应用程序实现

    在真实环境中,处理日志的时候,会有很多小的碎文件,但是文件总量又是很大.普通的应用程序用来处理已经很麻烦了,或者说处理不了,这个时候需要对小文件进行一些特殊的处理——合并. 在这通过编写java应用程 ...

  7. 新装的win7 64位系统上装了IE11,想调试网页的时候,按F12,工具会出来,但是没法正常使用,出现空白。

    Windows专区开了一帖,没人应.这边再开一帖,看看各位遇到过没.如题,新装的win7 64位系统上装了IE11,想调试网页的时候,按F12,工具会出来,但是没法正常使用.尤其是想切换文档模式,只能 ...

  8. 基于eclipse创建android的helloworld工程

    基于eclipse创建android的helloworld工程 之前用过Android studio感觉很慢,决定采用eclipse来学习Android开发.下面来看是怎么创建的. 选择File--- ...

  9. js中的this怎么理解

    本博客供自己学习备忘, js中的this感觉很混乱,目前还有不少地方搞得不是很清楚,看到一篇不错的文章,先摘下来 this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象 ...

  10. setBackgroundDrawable和setBackgroundColor的用法

        1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getResources().getDrawable(R.drawa ...