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

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

DM8数据库安装后配置

1 前言 在上篇文章中,我们已经成功将库装好。在安装完成后,为了能够更好地满足应用需求和保障系统的安全稳定运行,通常需要进行一些基本的配置。下面是一些常见的配置项: 数据库服务注册:默认包含14个功能模块,将这些模块注册成服务后,可以更好的启动和管理这些功能;基本的实例参数配置:契合应用场景和发挥系统的最大性能;备份:有备无患;… 2 注册实例服务 注册了实例服务后,可以使用系统服务管理,

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争