Ado.Net 访问数据库

2024-06-23 11:58
文章标签 访问 数据库 net ado

本文主要是介绍Ado.Net 访问数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引入两个命名空间
using System.Data;
using System.Data.SqlClient;

namespace MyFriends
{
    class DBHelper
    {
        //创建连接字符串
        private const string connStr = @"Data Source=.;Initial Catalog=MySchool;Integrated Security=True";

        /// <summary>
        /// 查询第一行第一列内容的通用方法(cmd.ExecuteScalar)
        /// </summary>
        /// <param name="sql">查询用的sql</param>
        /// <returns>第一行第一列内容,object通用类型:null(DB异常)、非null(DB无异常)</returns>
        public object SelectOne(string sql)
        {
            //用来保存查询结果的第一行第一列内容
            object obj = null;
            //创建连接
            SqlConnection conn = new SqlConnection(connStr);
            //创建cmd对象,用来执行命令
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                //打开连接
                conn.Open();
                //cmd执行查询命令,并将第一行第一列内容保存到局部变量obj
                obj = cmd.ExecuteScalar();
            }
            catch (Exception ex)
            {
                //输出异常
                Console.WriteLine(ex.Message);
            }
            finally
            {
                //关闭连接
                conn.Close();
            }
            //返回局部变量obj
            return obj;
        }

        /// <summary>
        /// 查询多行多列内容的通用方法(datareader)
        /// </summary>
        /// <param name="sql">查询用的sql</param>
        /// <returns>datareader对象:null(DB异常)、非null(DB无异常)</returns>
        public SqlDataReader SelectAll(string sql)
        {
            //用来保存查询结果,保存到dr中
            SqlDataReader dr = null;
            //创建连接
            SqlConnection conn = new SqlConnection(connStr);
            //创建cmd对象,用来执行命令
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                //打开连接
                conn.Open();
                //cmd执行查询ExecuteReader命令,返回多行内容并保存到局部变量dr
                //调用该方法的地方,如果关闭datareader,将同时关闭连接
                dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                //输出异常
                Console.WriteLine(ex.Message);
            }
            //返回局部变量dr
            return dr;
        }

        /// <summary>
        /// 增删改的通用方法(cmd.ExecuteNonQuery)
        /// </summary>
        /// <param name="sql">增删改用的sql</param>
        /// <returns>受影响的行数:-1(DB异常)、0(增删改失败)、>0(增删改成功)</returns>
        public int Update(string sql)
        {
            //用来保存执行增删改后受影响的行数
            int result = -1;
            //创建连接
            SqlConnection conn = new SqlConnection(connStr);
            //创建cmd对象,用来执行命令
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                //打开连接
                conn.Open();
                //cmd执行增删改命令,并将受影响的行数保存到局部变量result
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                //输出异常
                Console.WriteLine(ex.Message);
            }
            finally
            {
                //关闭连接
                conn.Close();
            }
            //返回局部变量result
            return result;
        }

        //--------------------------------------------------------------------------------------

        //用来保存查询结果,保存到ds中
        DataSet ds = null;
        //通用的数据适配器da
        SqlDataAdapter da = null;

        /// <summary>
        /// 查询多行多列内容的通用方法(dataset)
        /// </summary>
        /// <param name="sql">查询用的sql</param>
        /// <param name="tableName">将数据放入ds中的该表</param>
        /// <returns>dataset对象:null(DB异常)、非null(DB无异常)</returns>
        public DataSet DSSelectAll(string sql,string tableName)
        {
             //创建连接
            SqlConnection conn = new SqlConnection(connStr);
            //初始化ds
            ds = new DataSet();
            try
            {
                //创建数据适配器da
                da = new SqlDataAdapter(sql, conn);
                //da填充数据集ds,将数据填充到ds的tableName表中
                da.Fill(ds,tableName);
            }
            catch (Exception ex)
            {
                //输出异常
                Console.WriteLine(ex.Message);
            }
            //返回局部变量ds
            return ds;
        }

        /// <summary>
        /// 增删改的通用方法(SqlCommandBuilder)
        /// 注意:sql必须满足单表+包含主键
        /// </summary>
        /// <param name="tableName">将ds中tableName表的数据更新到DB</param>
        /// <returns>受影响的行数:-1(DB异常)、0(增删改失败)、>0(增删改成功)</returns>
        public int DSUpdate(string tableName)
        {
            //用来保存执行增删改后受影响的行数
            int result = -1;
            try
            {
                //创建SqlCommandBuilder对象,已da作为参数
                SqlCommandBuilder builder = new SqlCommandBuilder(da);
                //将ds中tableName表的数据更新到DB
                result=da.Update(ds, tableName);
            }
            catch (Exception ex)
            {
                //输出异常
                Console.WriteLine(ex.Message);
            }
            //返回局部变量result
            return result;
        }
    }
}

这篇关于Ado.Net 访问数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087095

相关文章

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)