using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.SqlClient;

using System.Data;

namespace ADO1

{

public class DBHelper

{

public static string Message = string.Empty;

static SqlConnection conn = null;

/// <summary>

/// 连接数据库

/// </summary>

private static void OpenConn()

{

conn = new SqlConnection("Data Source=.;Initial Catalog=MySchoolBase;Integrated Security=True");

conn.Open();

}

/// <summary>

/// 执行增删改操作

/// </summary>

/// <param name="sql">要执行的SQL语句</param>

/// <returns>返回成功所影响的行数</returns>

public static int ExecuteCommand(string sql)

{

int ok = 0;

try

{

OpenConn();

SqlCommand cmd = new SqlCommand(sql, conn);

ok = cmd.ExecuteNonQuery();

Close();

}

catch (Exception e)

{

ok = -1;

Message = e.Message;

}

return ok;

}

/// <summary>

/// 执行查询返回单行单列的数值形式

/// </summary>

/// <param name="sql"></param>

/// <returns></returns>

public static int ExecuteScalar(string sql)

{

int ok = 0;

try

{

OpenConn();

SqlCommand cmd = new SqlCommand(sql,conn);

ok = Convert.ToInt32(cmd.ExecuteScalar());

Close();

}

catch (Exception e)

{

ok = -1;

Message = e.Message;

}

return ok;

}

public static DataTable GetDataTable(string sql)//使用Adapter对象连接数据库表(不传表名)

{

DataTable dt = new DataTable();

try

{

OpenConn();

SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);

adapter.Fill(dt);

Close();

}

catch (Exception e)

{

Message = e.Message;

}

return dt;

}

public static DataTable GetDataTable(string sql, string tableName)//使用Adapter对象连接数据库表

{

DataTable dt = new DataTable(tableName);

try

{

OpenConn();

SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);

adapter.Fill(dt);

Close();

}

catch (Exception e)

{

Message = e.Message;

}

return dt;

}

/// <summary>

/// 执行查询

/// </summary>

/// <param name="sql"></param>

/// <returns></returns>

public static SqlDataReader ExecuteReader(string sql)

{

SqlDataReader rs = null;

try

{

OpenConn();

SqlCommand cmd = new SqlCommand(sql,conn);

rs = cmd.ExecuteReader();

}

catch (Exception e)

{

Message = e.Message;

}

return rs;

}

/// <summary>

/// 关闭数据库连接

/// </summary>

public static void Close()

{

if (conn != null)

{

conn.Close();

}

}

}

}

ADO.NET DBHelper 类库的更多相关文章

  1. 同时使用ADO与Excel类库冲突的问题

    客户需要一个Demo程序实现Access数据库表导出到Excel表格,并将表中存储的照片(OLE对象)以其中一个字段(编号)命名存储到本地.程序中引入了ADO操作Access数据库("C:\ ...

  2. ADO.NET 【类库】【与数据库的连接】

    ADO.NET是什么,有什么用 数据库访问技术 ado.net可让开发人员以一致的方式存取资料来源, 资料共用的消费者应用程序可使用ado.net 来连接至这些资料来源,并且撷取.处理及更新其中所含的 ...

  3. ADO.NET通用类库

    using System.Data; using System.Data.SqlClient; namespace DataService { public class SQLHelper { pub ...

  4. ADO.NET DBHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...

  5. C#/ASP.NET完善的DBHelper,配套Model生成器

    支持Oracle.MSSQL.MySQL.SQLite四种数据库,支持事务,支持对象关系映射:已在多个项目中实际使用. 没有语法糖,学习成本几乎为0,拿来即用. DBHelper类完整代码: usin ...

  6. 30、ADO.NET、事务、DataSet

    ADO.NET ADO.NET是一组用于和数据源进行交互的面向对象类库.通常数据源是数据库,但也可以是文本文件.Excel表格.XML文件. 说白了就是使用.net操作数据库的一套类库. ADO.NE ...

  7. 简述ADO.NET(一)

    ADO.NET 宏观定义 传统ADO主要针对紧密连接的客户端/服务器端系统,而 ADO.NET考虑到了断开连接式应用并且引进了 Dateset 它代表任意数量的关联表,其中每个表都包含了行和列的集合的 ...

  8. ASP.NET快速学习方案(.NET菜鸟的成长之路)

    想要快速学习ASP.NET网站开发的朋友可以按照下面这个学习安排进度走.可以让你快速入门asp.net网站开发!但也局限于一般的文章类网站!如果想学习更多的技术可以跟着我的博客更新走!我也是一名.NE ...

  9. “Zhuang.Data”轻型数据库访问框架(一)开篇介绍

    目录: “Zhuang.Data”轻型数据库访问框架(一)开篇介绍 “Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象 框架介绍 该框架主要用于数据库访问,封装了包括 ...

随机推荐

  1. Java 访问控制规则简介

    1. 概述 老生常谈的内容 巩固一下自己 要摇摇欲坠的基础 内容确实不怎么高级... 2. 常规解释 1. 概述 简单说下什么情况 在单纯考虑 public, protected, 以及 privat ...

  2. SQLite3日期与时间,常见函数

    SQLite3日期与时间,常见函数 import sqlite3 #con = sqlite3.connect('example.db') con = sqlite3.connect(":m ...

  3. CF 1083 C. Max Mex

    C. Max Mex https://codeforces.com/contest/1083/problem/C 题意: 一棵$n$个点的树,每个点上有一个数(每个点的上的数互不相同,而且构成一个0~ ...

  4. TMS320VC5509驱动LCD1602

    1. 本次使用5509芯片的EMIF接口,先看下硬件的接口 LCD1602接口  RS(高电平1数据寄存器,低电平0指令寄存器) 接A2接口 LCD1602接口  RW(高电平读,低电平写) 接 AW ...

  5. postgresql parallel join example

    CREATE TABLE public.pgbench_accounts_bak ( aid integer NOT NULL, bid integer, abalance integer, fill ...

  6. javaweb(三十一)——国际化(i18n)

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  7. python全栈开发-面向对象-进阶

    python_day_18 1,面向对象的三大特性是什么?继承,多态,封装2,什么是面向对象的新式类?什么是经典类?凡是继承object类都是新式类.凡是不继承object类都是经典类.3,面向对象为 ...

  8. Android 测试 之adb shell

    一.发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key code如下表所列: KeyEvent Value ...

  9. NO--10今天带大家回忆回忆“闭包”吧!

    对于‘闭包,我相信很多人都掉进过这个坑里,也相信很多人没能详细的理解这个问题,今天带大家再次走进闭包: 写这篇文章时的心情是十分忐忑的,因为对于我们今天的主角:闭包,很多小伙伴都写过关于它的文章,相信 ...

  10. Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★

    Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...