当前位置: 首页 > news >正文

使用ADO.NET查询和操作数据库(合集)

一ADO.ENT的主要组件

  提供两个组件,用来访问和处理数据:.NET Framework 数据程序和DataSet(数据集)

  .NET Framework:是专门为数据处理及快速地只进,只读访问数据而设计的组件。使用它可以连接数据源,执行命令和检索结果,直接对数据进行操作 。

  DataSet:是专门为独立于任何数据源的数据访问而设计的。使用它,可以不必直接和数据源打交道,大批量地操作数据,也可以将数据绑定在控件上 。

 

                                                              NET Framework 数据提供程序

  NET Framework 用于SQL Server的数据提供程序:提供对Microsoft  SQL  Server数据的访问。使用System.Data.SqlClient 命名空间

  NET Framework  用于OLE DB  的数据提供程序:提供对OLE DB  公开的数据源中数据的访问。使用System.Data.OleDb命名空间

  NET Framework 用于ODBC 的数据提供程序 :提供使用ODBC  公开的数据源中数据的访问。使用System.Data.Odbc命名空间

 

 

一、建立数据库连接

连接字符串的格式:"Server=服务器名或服务器IP地址;DataBase=数据库名称;User ID=用户名;Pwd=密码"

使用Connection对象连接SQL Server数据库的方法如下:

using System.Data.SqlClient;引用namespace

......

SqlConnection con=new SqlConnection(连接字符串);

con.Open();

......

//数据库相关操作

......

con.Close();

 

异常处理:

语法:

      try{

      //包含可能出现的异常代码!

      }catch(处理异常的类型){

        //处理异常的代码

      }finally{

      }

        finally:无论是否发生异常,出现在finally块中的语句都会执行。

 

操作数据

一、SqlCommand  

  表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。 此类不能被继承。Command类可以执行任何类型的SQL语句。

 

  我们在使用其执行SQL语句的时候,必须首先声明其对象,常用的三种:

  SqlCommand()           初始化 SqlCommand 类的新实例。

   SqlCommand(String)   用查询文本初始化 SqlCommand 类的新实例。

   SqlCommand(String,SqlConnection)  初始化具有查询文本和 SqlConnection 的 SqlCommand 类的新实例。

【注】SqlConnection 的使用将不单独讲,因为在操作数据库的时候都会用到。

 

   CommandText    获取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。

   CommandType   获取或设置一个值,该值指示如何解释 CommandText 属性。

   Connection         获取或设置 SqlCommand 的此实例使用的 SqlConnection。

   Parameters         获取 SqlParameterCollection(sql语句中需要输入的阐述集合)。

 

   ExecuteNonQuery    执行 Transact-SQL INSERT、DELETE、UPDATE 及 SET 语句等命令并返回受影响的行数。 

   ExecuteReader()     将 CommandText 发送到 Connection 并生成一个 SqlDataReader。

   ExecuteReader(CommandBehavior)  将 CommandText 发送到 Connection,并使用 CommandBehavior 值之一生成一个 SqlDataReader。

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

  Dispose()                释放由 Component 使用的所有资源。

 

二、SqlDataReader 

  提供一种从 SQL Server 数据库读取行的只进流的方式。 此类不能被继承。只能向下顺序执行,一次读取一条记录,所以需要随时保存的记录。

 

   IsClosed     检索一个布尔值,该值指示是否已关闭指定的 SqlDataReader 实例。

  常用方法

  Read()                        使 SqlDataReader 前进到下一条记录。

  Close                          关闭 SqlDataReader 对象。 

    Dispose()                    释放 DbDataReader 类的当前实例所使用的所有资源。 

    IsCommandBehavior   确定指定的 CommandBehavior 是否与 SqlDataReader 的对应项匹配。

    IsDBNull                      获取一个值,用于指示列中是否包含不存在的或缺少的值。

 

对数据库中的数据增删改(使用Command对象的ExecuteNonQuery()方法)

ExecuteNonQuery()方法用于执行指定的SQL语句,如:update、insert、delete,它返回的是受SQL语句影响的行数

使用Command对象的ExecuteNonQuery()方法的步骤如下:

1.  创建Connection对象

2.  定义要执行的SQL语句

3.  创建Command对象

4.  执行ExecuteNonQuery()方法  注意:完成操作后不要忘记关闭conn对象。

5.  根据返回结果,进行后续处理,如返回值小于或等于0说明没有记录影响。

转载于:https://www.cnblogs.com/yzwss/p/7759761.html

相关文章:

  • php json_decode无法解析特殊问好字符
  • Android RecyclerView (一) 使用完全解析
  • 多列等高布局
  • 前端小姿势
  • 杀死进程命令
  • Android******Context******
  • 推荐几款专门为Github党量身定做的Chrome插件
  • 算法导论Java实现-二分查找运用(习题2.3-7)
  • [20171102]视图v$session中process字段含义
  • [SDOI2010]大陆争霸
  • centos模板机制作前修改配置
  • 编程之用户体验
  • SQL UPDATE实现多表更新
  • 常用的JavaScript验证正则表达式
  • 在VMware Workstation上安装Ubuntu 16.04 Server操作系统
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • @jsonView过滤属性
  • idea + plantuml 画流程图
  • jquery ajax学习笔记
  • Linux中的硬链接与软链接
  • mysql innodb 索引使用指南
  • 高性能JavaScript阅读简记(三)
  • 基于遗传算法的优化问题求解
  • 京东美团研发面经
  • 前端存储 - localStorage
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信小程序开发问题汇总
  • 我有几个粽子,和一个故事
  • 源码安装memcached和php memcache扩展
  • linux 淘宝开源监控工具tsar
  • ​Linux·i2c驱动架构​
  • ​你们这样子,耽误我的工作进度怎么办?
  • #微信小程序(布局、渲染层基础知识)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (1)Nginx简介和安装教程
  • (C#)一个最简单的链表类
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (接口封装)
  • (力扣)循环队列的实现与详解(C语言)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)基于IDEA的JAVA基础1
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net core Swagger 过滤部分Api
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 解决重复提交问题
  • .stream().map与.stream().flatMap的使用
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [145] 二叉树的后序遍历 js