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. php excel读取

    当然首先要判断是否有文件和文件类型,接着把文件保存到某个路径中 /** * 读取excel数据 * @author Red * @date * @param $filename 文件所在路径+文件名 ...

  2. sql server 怎么实现mysql中group_concat,列转行,列用分隔符拼接字符串

    create table tb(id int, value varchar(10)) insert into tb values(1, 'aa') insert into tb values(1, ' ...

  3. 错误: 程序包com.sun.istack.internal不存在

    eclipse下maven打包是出现如下错误: [ERROR] D:\code-old\daba_user_mvn\src\main\java\com\dada\transaction\service ...

  4. Process的Waitfor() 引起代码死锁

    Java用process调用c#的exe后,process.waitfor(). exe执行会停在某处.据说是waitfor引起的exe子线程死锁. 先存一个链接 http://yearsaaaa12 ...

  5. Tomcat部署Solr4.10.4

    前段时间学习solr,兴致勃勃的从官网下载到solr5.3.0最新版本,然后在后期部署时出现了很多问题.首先,4.0到5.0是个大版本更新,下载 的压缩包的文件结构有了很多变化,导致网上很多关于sol ...

  6. c#操作access,update语句不执行的解决办法

    update access数据库时,使用了参数化的方式,结果不报错,但是数据也没有更新.后来发现access使用参数化时,参数位置必须和赋值顺序相同才行,否则更新时就会出现数据无法更新但是也不报错的怪 ...

  7. sqlserver无ldf日志文件附加的方法(数据库没有完全关闭,无法重新生成日志)

    数据库的ldf日志文件被删了,直接附加时报错:数据库没有完全关闭,无法重新生成日志 那怎么恢复数据呢?方法如下: 在数据库中新建一个同名的数据库(文件路径要与原来的相同,ldf的文件名也要相同),然后 ...

  8. 线程优先级抢占实验【RT-Thread学习笔记 3】

    同时处于就绪状态的线程,优先级高的先执行. 高优先级就绪时,低优先级任务让出CPU,让高优先级任务先执行. 创建两个任务函数: //线程优先级抢占 void thread1_entry(void *p ...

  9. 流水灯 外侧<->中间<->外侧

    /* //side<-center->side //side->center<-side //loop *// #include "reg52.h" voi ...

  10. contains 方法

    不管在c#中还是java中,很多类型都有contains方法.它的原理是什么? 看一个java的例子 http://blog.csdn.net/fwwdn/article/details/674684 ...