1.使用Connection连接数据库的步骤:

(1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记)

(2)定义连接字符串。连接SQL Server 数据库时:

server=服务器名;database=数据库名;uid=用户名;pwd=密码;例如:要连接本机上的StudentManagement数据库,用户名为sa,密码为111

string connString="server=.;database=StudentManagement;uid=sa;pwd=111;"

(3).创建Connection对象:

SqlConnection connection=new SqlConnection(connSting);

(4).打开数据库:

connection.Open();

(5).对数据库操作完毕后关闭数据库连接

connection.Close();

2.Command对象:

(1).command对象可以用来对数据库发出具体的操作指令,例如对数据库的查询、增加、修改、删除

(2).创建Command对象,并设置它的属性:

SqlCommand command =new SqlCommand();

command.Connection=connection;

command.CommandText=sqlQuery(sqlQuery为查询语句);

(3).Command对象的主要方法:

ExecuteNonQuery:执行后不返回任何行,对于update、insert、delete语句,返回影响的行数对于其他类型的语句,返回值为-1

ExecuteReader:执行查询语句,返回DataReader对象

ExecuteScalar:执行查询,并返回查询结果的第一行第一列,忽略其他列或行

ExecuteXmlreader:将CommandText发送到Connection并生成一个XmlReader

3.DataReader对象:

(1).DataReader对象可以从数据库中一只读、只进的方式查询数据,每次的操作只有一个记录保存在内存中

(2).DataReader对象的主要方法:

Read:读取下一条数据

Close:关闭DataReader对象

(3).使用DataReader提取数据的步骤:

(a).建立与数据库的连接并打开

(b).创建一个Command对象

(c).从Command对象中创建DataReader对象

(d).使用DataReader读取并显示

可以使用一个循环利用Read方法便利数据库中行的信息,如果要获取该行中某列的值,只需要使用"["和"]"运算符就可以了

(e).分别关闭DataReader对象和数据库的连接

下面下一个简单的ADO.NET帮助类

 public static class ADOSQLHelper
    {
        private static readonly string constr = ConfigurationManager.ConnectionStrings["Master"].ConnectionString;
        /// <summary>
        ///执行增删改
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pms"></param>
        /// <returns></returns>
        public static int ExecuteNoneQuery(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        /// <summary>
        /// 如果SqlParameter为空则转换为DBNull
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        static public object SqlNull(object obj)
        {
            if (obj == null)
            {
                return DBNull.Value;
            }
            return obj;
        }
        /// <summary>
        /// 如果是DBNULL则转换成null
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        static public object DBNullToNull(object obj)
        {
            if (obj == DBNull.Value)
            {
                return null;
            }
            return obj;
        }

        /// <summary>
        /// 返回datatable
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pms"></param>
        /// <returns></returns>
        public static DataTable ExecuteDataTable(string sql,params SqlParameter[] pms)
        {
            DataTable dt = new DataTable();
            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, constr))
            {
                if (pms != null)
                {
                    adapter.SelectCommand.Parameters.AddRange(pms);
                }
                adapter.Fill(dt);
            }
            return dt;
        }
        /// <summary>
        /// 返回单个值
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pms"></param>
        /// <returns></returns>
        public static object ExecuteScalar(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return cmd.ExecuteScalar();
                }
            }
        }

    }

基于ADO.NET的SqlHelper类的更多相关文章

  1. ADO.NET复习——自己编写SqlHelper类

    今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...

  2. C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法

    本文实例讲述了C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法.分享给大家供大家参考.具体如下: 这个类不是我实现的,英文原文地址为http://www.egg ...

  3. NET Core2.0 Memcached踩坑,基于EnyimMemcachedCore整理MemcachedHelper帮助类。

    DotNetCore2.0下使用memcached缓存. Memcached目前微软暂未支持,暂只支持Redis,由于项目历史原因,先用博客园开源项目EnyimMemcachedCore,后续用到的时 ...

  4. 通用查询设计思想(2)- 基于ADO.Net的设计

    不少公司用的是ADO.NET的访问方式,估计不少朋友对于sql的拼写真是深恶痛绝,在没有一个封装足够好的底层的项目,特别是经过许多人接手之后,代码那叫一个惨不忍睹,本文借助[通用查询设计思想]这篇文章 ...

  5. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

  6. Asp.Net Core 2.0 项目实战(5)Memcached踩坑,基于EnyimMemcachedCore整理MemcachedHelper帮助类。

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  7. ADO.Net和SqlHelper封装

    1.什么是ADO.Net 简单来讲,ADO.NET是用于和数据源打交道的.Net结束,是一组向.NET程序员公开数据访问服务的类   2.ADO.NET的组成部分和对象模型 (1)ADO.NET的两个 ...

  8. [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏

    前言  这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示    ...

  9. 最新的SqlHelper 类

    最新的SqlHelper 类 摘自:http://www.cnblogs.com/sufei/archive/2010/01/14/1648026.html using System; using S ...

随机推荐

  1. Android应用内存泄漏的定位、分析与解决策略

    什么是内存泄漏 对于不同的语言平台来说,进行标记回收内存的算法是不一样的,像 Android(Java)则采用 GC-Root 的标记回收算法.下面这张图就展示了 Android 内存的回收管理策略( ...

  2. Keepalived+Nginx架构整理版

    Keepalived介绍 keepalived是一个类似于layer3, 4, 5 交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如 ...

  3. 关于无法使用xx-pc附加到应用程序iisexpress.exe

    问题表现:1.本地调试F5不能调试 2.IIS调试 附加到进程 提示无法访问 解决方法: 用管理员身份在cmd中运行:netsh winsock reset,然后重启.

  4. open office操作word文档

    前段时间工作需要使用open office往word中写文件,写图片,以及向footer也就是页尾中插入图片,已经封装成了类,直接调用即可,代码如下: package com.test.common. ...

  5. dotNet下的一套解决方案

    很久没在博客园写文章了,打算把一直由自己一个人写的一整套系统开放出来,今天先放一些截图及可以演示的地址! 这套系统包含数据层(HB.Data).计划任务(HB.PlanTask).日志系统(HB.Lo ...

  6. cordova环境配置

    1,安装node.js 2,安装git 3,安装cordova 安装node.js后,命令行输入:npm install -g cordova 加@版本号可安装指定版本,如:npm istall -g ...

  7. Bandpass Signals(带通信号,或称窄带信号)

    带通信号 一个实的带通信号$x(t)$可以表示为 \[x(t) = r(t)\cos (2\pi f_0 t + \phi_x(t)) \] 其中$r(t)$是幅度调制或包络,$\phi_x(t)$是 ...

  8. Activity Intent Flags及Task相关属性

    转自http://www.cnblogs.com/lwbqqyumidi/p/3775479.html 今天我们来讲一下Activity的task相关内容. 上次我们讲到Activity的四种启动模式 ...

  9. 黄聪:css3实现图片划过一束光闪过效果(图片光影掠过效果)

    CSS代码 .guangshu { display:block; position: relative; width:800px; height:450px; margin:0 auto;} .gua ...

  10. CentOS_7 OpenWrt Eclipse 环境搭建与 Dr.com 开发笔记

    一:内核的编译. 1,linux 编译环境的搭建与源码的准备工作 2,常用软件的安装 (make menuconfig) 3,  针对TP-Link WR740N 一些软件的openwrt 的移植 4 ...