private static string connString = "server=.;database=hotel;uid=aa;pwd=123";//最好从配置文件中取出

public static SqlConnection conn = new SqlConnection(connString);

在配置文件中进行配置并取出

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<configuration>

  <connectionStrings>

<add name="Test"

connectionString="Data Source=.;Initial Catalog=HospitalInstrument;User ID=sa;Password=123"

     providerName="System.Data.SqlClient"/>

</connectionStrings>

</configuration>

添加引用System.Configuration

使用该命名空间下的ConfigrationManager类

string constr=ConfigurationManager.ConnectionStrings["Test"].ConnectionString;

//公用的增删改方法
public static bool ZhengShanGai(string sql)
{
bool flag = false;
SqlCommand com = null;
try
{
if (sql == null || sql == "")
{
return false;
}
if (conn.State != ConnectionState.Open)
conn.Open();
com = new SqlCommand(sql, conn);

if (com.ExecuteNonQuery() > 0)
flag = true;
}
catch (Exception ex)
{
throw ex;
}
finally
{
com.Dispose();
conn.Close();
}
return flag;
}
//公用的查询方法 ,返回值为SqlDateReader
public static SqlDataReader Query(string sql)
{
SqlCommand com = null;
SqlDataReader reader = null;
try
{
if (sql == null || sql == "")
{
return null;
}
if (conn.State != ConnectionState.Open)
conn.Open();
com = new SqlCommand(sql, conn);
//当关闭reader后连接自动关闭
reader = com.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
return null;
throw ex;
}
return reader;
}
//公用的查询方法 ,返回值为DataTable;
public static DataTable QueryInfo(string sql)
{
DataTable dt = new DataTable();
SqlDataAdapter da = null;
try
{
DBHelper.conn.Open();
da = new SqlDataAdapter(sql, DBHelper.conn);
da.Fill(dt);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
DBHelper.conn.Close();
}
return dt;
}
// 执行带参数存储过程的方法
public bool ExcuteProc(string procName, SqlParameter[] procParams)
{
bool flag = false;
SqlCommand com = null;
try
{
if (procName == null || procName == "") return false;
if (conn.State != ConnectionState.Open) conn.Open();
com = new SqlCommand(procName, conn);
com.CommandType = CommandType.StoredProcedure;
if (procParams != null)
{
foreach (SqlParameter procParam in procParams)
{
com.Parameters.Add(procParam);
}
}
if (com.ExecuteNonQuery() > 0) flag = true;
}
catch (Exception)
{
return false;
}
finally
{
com.Dispose();
conn.Close();
}
return flag;
}
}

以上是很简单的ado.net基础帮助类,如有什么疑问,或是认为我写的有错,我愿意和大家交流

Ado.net中简单的DBHelper类(增删改查)的更多相关文章

  1. 在MFC里面使用ADO访问微软的ACCESS数据库 实现增删改查

    声明:百度以外的公司可以自由转载该文. 正如我上一篇博文提到,ADO这货和MFC没有任何关系,ADO 是一个独立的组件.所以为了使用ADO 我们就要把ADO引入到MFC中. ADO是硬盘上的表现形式是 ...

  2. Mybatis实现简单的CRUD(增删改查)原理及实例分析

    Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...

  3. Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库

    一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...

  4. kibana的Dev Tool中如何对es进行增删改查

    kinaba Dev Tool中对es(elasticSearch)进行增删改查 一.查询操作 查询语句基本语法 以下语句类似于mysql的: select * from  xxx.yyy.topic ...

  5. EF(Entity Framework)通用DBHelper通用类,增删改查以及列表

    其中 通用类名:DBhelper 实体类:UserInfo 1 //新增 2 DBHelper<UserInfo> dbhelper = new DBHelper<UserInfo& ...

  6. Django中对单表的增删改查

    之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象   book_obj=Book.objects.creat ...

  7. 潭州课堂25班:Ph201805201 django框架 第六课 模型类增删改查,常用 的查询矣查询条件 (课堂笔记)

    在视图函数中写入增删改查的方法 增: 在 urls 中配置路径 : 查: 1: 在后台打印数据 在模型类中添加格式化输出 : QuerySet,反回的是个对象,可以按索引聚会,用 for 循环,, 找 ...

  8. Django学习笔记--数据库中的单表操作----增删改查

    1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...

  9. Django中ORM对数据库的增删改查操作

         前言 什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...

随机推荐

  1. 三张图片详解Asp.Net 全生命周期

    用三张图片详解Asp.Net 全生命周期 下面我们使用三张图片解析ASP.net的整个生命周期,我总感觉使用图片更加的清楚的说明这种问题,所以使用的这样方式 说明: 1  第一张图片从全局说明从客户端 ...

  2. Oracle游标--cursor_01-简单不带参数实现功能

    对于游标这个概念,可以理解为类似我们以前学习的jdbc的结果集对象, 我们可以使用游标对结果集从上到下进行遍历,获取每一行内容 首先我们要分析一下游标的分类 带参数的 书写函数的整体架构 定义游标 开 ...

  3. JQuery 刷新关闭页面

    关闭当前页面,刷新之前页面(js): window.opener.location.href = window.opener.location.href; window.close(); 刷新当前页面 ...

  4. PPTP VPN 限制一个账号只允许一个用户来登录

    创建auth-up文件 vi /etc/ppp/auth-up chmod a+x /etc/ppp/auth-up auth-up脚本内容如下 #!/bin/sh # get the usernam ...

  5. C++设计模式-Adapter适配器模式(转)

    Adapter适配器模式作用:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 分为类适配器模式和对象适配器模式. 系统的数据和 ...

  6. linux服务器加硬盘扩容

    from: http://bbs.chinaunix.net/thread-3613556-1-1.html 试验环境: vmware下,centos6,64位版本,原来系统默认分区,/dev/sda ...

  7. 枚举全排列(包括数列中有重复数)的C语言实现

    据说是用了DFS的思想--然鹅并不知道这是DFS. 主要就是选取一个数放到数组相应位置上,然后递归的排列剩下的数组,将剩下的数组递归排列完了之后再把数放回去,然后这一层递归就返回了-- 有重复数的话遇 ...

  8. 把HBITMAP 保存图片文件.

    //VC下把HBITMAP保存为bmp图片 BOOL CtestBitMapDlg::SaveBmp(HBITMAP hBitmap, CString FileName) { HDC hDC; //当 ...

  9. RIDE安装遇到的问题及解决方法

    1.按照虫师的方法,下载的wxpython3.0 ,启动robotframework-ride,无效,因为版本不一致,所以我又根据终端提示的网址:http://sourceforge.net/proj ...

  10. codeforces Codeforces Round #380 (Div. 1, Rated, Based on Technocup 2017 - Elimination Round 2)// 二分的题目硬生生想出来ON的算法

    A. Road to Cinema 很明显满足二分性质的题目. 题意:某人在起点处,到终点的距离为s. 汽车租赁公司提供n中车型,每种车型有属性ci(租车费用),vi(油箱容量). 车子有两种前进方式 ...