ADO.NET学习笔记(一)

ADO.NET笔记(完整版,word格式) ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库。 本文档包括以下知识: 1.组成部分 2.最简单的Ado&Connection; 3.关于using 4.连接池 5.Command对象 6.Try catch 7.ExecuteScalar 8.SqlDataReader 9.CASE 10.子查询 11.EXISTS 12.分页查询 13.JOIN 14.LEFT JOIN 15.RIGHT JOIN 16.视图 立即下载

    最近几天一直在图书馆里面看《ADO.NET实用指南》,发现真是一本好书。读书自然就有心得,本人就根据书的线索,把自己的学习体会主要以代码的形式记录下来。(书上对应代码在http://www.adoguy.com/book里)

1、连接
    ADO.NET最大的特色就在于支持在断开连接的情况下对数据库里的内容进行操作,这样可以大大的节约过多连接带来的消耗,前面的那一篇文章中已经给了一个具体的例子说明ADO.NET的这种特性。我们可以在从数据库里获得数据的时候打开连接,在得到数据之后就断开连接,对dataset里面的数据进行操作,然后在把dataset里的内容更新到数据库里面的时候再打开连接。对于dataReader则必须一直保持连接。
    使用这种特性的时候有几点要注意一下:
(1)更改连接属性的时候必须断开连接
(2)切换数据库的时候选择conn.changeDatabase(dbName),减少断开连接与新建连接往返带来的消耗
    ADO.NET同时支持数据库自带连接池。在一个连接关闭之后,连接会在池中保持一段时间,然后才实际的关闭,如果在超时之前,有人请求建立相同的连接,就将打开的连接分配给请求者,这对于经常进行打开和断开的连接可以减少很多的消耗。不过在SQL SERVER 2000中采用集成安全性的连接无法入池。
    连接涉及到的事件有Dispose,InfoMessage,StateChange,在MSDN可以查到,不再赘述。
    模板代码:
    Dim conn As SqlConnection
    conn=New SqlConnection("……") '里面为连接字符串
    conn.open()
    '进行相应的操作
    conn.close()

2、Command对象
    ADO.NET允许以三种不同的方式获取数据库里面的数据Command,DataSet,DataReader,Command是最基本的方法,通过执行SQL命令的形式获得数据。

    (1)创建    可以用两种方式创建
     a、创建新的Command对象
        Dim cmd As New SqlCommand
        cmd.connection=conn
        cmd.CommandText="SELECT * FROM Customer"
     b、获得对conn中command对象的引用
        Dim cmd As SqlCommand
        cmd=conn.createCommand();
        cmd.CommandText="SELECT * FROM Customer"      
     推荐第二种方法

     (2)执行    四种执行方式
      ExecuteNonQuery() 返回受命令影响的行数
      ExecuteScalar()   返回第一行第一列(使用与集函数)
      ExecuteReader() 返回一个DataReader对象
      ExecuteXmlReader()返回一个XmlReader对象

     (3)参数    主要是用在存储过程中,有复杂和精简两种形式
      复杂方法: 
      Dim param As new SqlParameter("@Return",SqlDbType.Int)
      param.Direction=ParameterDirection.ReturnValue
      cmd.Parameters.Add(param)
      精简方法
      cmd.Parameters.Add("@Return_value",DbType.Int32).Direction=ParameterDirection.ReturnValue
      建议:如果需要处理输出值时的时候使用参数,只处理输入值的时候就不用使用参数了。

     (4)事务
      用SQL语句:
      Begin TRAN
         SQL操作
         If @@ERROR <>0
         Begin
         RollBack TRAN
         Return @@ERROR
      End
      Commit TRAN
      Return 0
      在ADO.NET中编写事务
      cmd.Transaction = conn.BeginTransaction()
      try
      {
    cmd.CommandText="..."
          cmd.ExecuteNonQuery()
          cmd.Transaction.commit()
       }
       catch(Exception ex)
          cmd.Transaction.Rollback()
       End try
 如果希望将数据库事务处理与一些外部系统结合起来(比如在数据库更新时同时进行了WEB更新,如果WEB更新失败希望回滚事务时),选择客户端编写事务处理(用ADO.NET编写)
       仅仅做数据库事务处理的话就直接在服务端写事务语句(在SQL SERVER2000 中写事务)
       在事务中可以创建SavePoint来实现部分事务回滚
       cmd.Transaction.save("New Customer")
       cmd.Transaction.Rollback("New Customer")

      (5)批处理查询 如果有多条SQL语句并且可以一起执行的话,就可以进行批处理查询。在DataReader中支持批处理查询获得的数据集。
       cmd.CommandText="SELECT * FROM Customer;SELECT * FROM Inovince;"
       Dim rdr As SqlDataReader
       rdr=cmd.ExecuteReader()
       rdr中即包含两个SQL语句执行的结果

3、DataReader对象
       DataReader对象只能对查询获得的数据集进行自上而下的访问,但效率很高。如果仅仅是访问数据的话,可以使用DataReader。但DataReader要求一直连接,所以将结果的一小部分先放在内存中,读完后再从数据库中读取一部分,相当于一个缓存机制。这对于查询结果百万级的情况来说,带来的好处是显而易见的。
 模板代码:
       Do While rdr.Read()
            Console.WriteLine(rdr(0))     '也可输出rdr("CustomerID")
       Loop
       如果要进行类型限制的话可以输出(String)rdr(0)或rdr.GetString(0)
      
       从DataReader里读出数据的时候要注意属性是否为空,如果属性可以为空,则读出数据时应进行判断
       If Not rdr.IsDBNull(0)
          Console.writeLine(...)

       用DataReader读取记录时,数据库默认上锁,可以通过更改DataReader的默认属性改变。

       如果DataReader里面的数据是批处理语句执行得到的话,可以通过NextResult访问
       模板代码:
       Do
          Do While rdr.Read()
             Console.WriteLine(rdr(0))   
          Loop      
       Loop While rdr.NextResult()

       处理元数据(显示每个属性的情况)
       Dim schema As DataTable
       schema=rdr.GetSchemaTable()  '得到元数据表,表里的每列对应每个属性的特性集合
       对于每一列属性对应的row,通过row("DataType")获得这列属性的数据类型。
      例子:
    Sub Main()
        Dim conn As New SqlConnection("data source=localhost;initial catalog=StudentCourse;" & _
        "User ID=;Password=;")
        Dim cmd As SqlCommand
        conn.Open()
        cmd = conn.CreateCommand
        cmd.CommandText = "Select * From Student"
        Dim rdr As SqlDataReader
        rdr = cmd.ExecuteReader
        Dim schema As DataTable
        schema = rdr.GetSchemaTable
        Dim i As Integer
        i = 0
        Debug.WriteLine(schema.Rows(i)("ColumnName"))
        Debug.WriteLine(schema.Rows(i)("DataType"))
        Debug.WriteLine(schema.Rows(i)("ColumnSize"))
        conn.Close()
    End Sub     

    
       

ADO.Net基础学习资料 Ado.Net基础学习资料,为提供Ado.net学习提供帮助。资料是文档,详细阐述了学习Ado.Net的相关知识 立即下载

相关推荐

ADO.NET学习笔记(教程)

这是我自己学习ADO.NET过程中总结的笔记,尽量采用了通俗的语言,而且中间插入了代码和注释,以及重点注意事项,代码中会有ASP.NET和HTML的代码,如果有需要的童鞋,可以下载阅读,个人觉得有助于快速上手ADO.NET技术

Ado.Net笔记

它是一种数据访问技术,应用程序可以连接到数据库,并以各种方式来操作其中的数据。一个COM组件库,.Net中数据优先选择的数据访问接口。ADO:ActiveX Data Objects 早期开发人员用来访问数据的组件。.Net Ado.Net 逐步取代Ado。他们之间的关系?Ado.Net 是Ado的升级版,严格上,它们又是俩种截然不同的方式。技术上:Ado oledb接口 ,基于COM技术,Ado.Net 拥有自己的接口,基于.Net体系架构。连接到数据库打开连接创建执行命令对象。

weixin_52473844的博客 491

Ado.NET学习用

这是一个很好的资源,利于大家学习,为了大家更好的明天

c#笔记-ADO.NET的使用

本文总结了c#操作数据库的技术-ADO.NET的使用方式及一些简单的使用例子

weixin_63658665的博客 5819

今天出一个candence 17.4 allego的安装教程

7、安装完成,接下来进行补丁更新,找到Hotfix_SPB17.40.035_wint.iso软件 ,右击鼠标选择装载。6、因为之前选择的定制安装,这一步不知道具体要安装啥,因此都勾选,点击NECK,接下来等待安装完成。后面经过仔细对比,发现是前面更新补丁时选择了F盘,F盘是candence安装包,不是补丁。8、在破戒大师里选择安装更新补丁,并找到刚才装载的安装包里的程序,点击下一步。3、打开破戒大师,找到安装candence进行如下图选择,点击下一步。有耐心的人可以重新卸了再装一边,我就不卸了,直接装。

hcvinh的博客 2727

静态分析工具COBOT与Testbed对比

Testbed为规则检查工具的代表,市场占有量非常大,但随着时间的推移,大家从规则匹配转向了用静态分析工具检查Bug,所以规则检查型工具占有量比开始时候已经减少,但仍有一些比较落后的单位还在继续采购此类工具。3、通过对开源工程的测试,进行误漏报率的对比,发现COBOT(库博)的误漏报率相比Testbed较低,因COBOT主打国内市场,在众多军工单位进行大量试用及使用,吸取了众多单位的意见和建议,更加符合国内军工单位的使用习惯及测试要求。4、此外库博在功能上还可以进行计划任务,检测队列,检测并发的功能支持。

chengoodflower的博客 2061

ado.net 学习笔记

ADO.NET概述    一、。NET数据提供程序    。Net框架提供数据提供程序:SQL Client .NET Data Provider和Ole DB .NET Data Provider.前者专为SQL Server7以及以后的版本的数据库进行通信而设计,后者允许通过OLE DB提供程序与各种数据存储进行通信。无论使用哪种方式,所编写的代码都很相似。    二、对象分类概述

mzoy的专栏 1217

SCS 43. 利用Scissor算法从单细胞数据中挖掘临床表型关联的细胞亚群

本文详细介绍了Scissor算法在单细胞转录组数据分析中的应用,该算法能够精准挖掘与临床表型关联的细胞亚群。通过建立单细胞RNA测序数据与临床预测模型的直接关联,Scissor避免了传统聚类方法的局限性,为疾病机制研究和个性化医疗提供了新工具。文章还涵盖了数据预处理、模型选择、结果验证等实战技巧。

weixin_28736335的博客 493

【windows命令】--cmd常用命令

打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令和cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口 # 控制台命令窗口中一些技巧 tab补全功能 命令参数的路径:要使用反斜杠'\',不要使用正斜杠'/' 如:del d:\test2\file\my.txt 命令参数的路径:若存在空格,应使用双引号将路径引起来 如:del"d:\program files\file\m...

是安澜啊 3583

【基于51】红外寻迹智能小车 - 代码篇

这是一个基于C51单片机的红外巡线智能小车,是一个适合嵌入式单片机、C语言初学者练习的小Demo,文章提供完整的项目思路、免费的源代码。

ZER00000001的博客 3万+

从零到一:3D-ResNet50在医学影像中的实战陷阱与避坑指南

本文深入探讨了3D-ResNet50在医学影像分类中的实战应用,重点解析了NIFTI数据预处理、小样本迁移学习陷阱及GPU显存优化等关键问题。通过分块加载、混合精度训练等技巧,有效解决了医学影像处理中的内存管理和性能挑战,为开发者提供了实用的避坑指南和优化策略。

weixin_29038345的博客 392

ADO.NET详细学习笔记《一》

目录 ADO.NET和ADO的区别 ADO.NET的五大核心对象 Connection对象 Command对象 DataAdapter对象,DataSet对象 DataReader对象 【1】ADO.NET和ADO的区别: ADO以Recordset存储,而ADO.NET则以DataSet表示。Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须...

weixin_34247155的博客 90

【机器学习-09】特征工程

特征工程是机器学习模型构建的初步工作,但它的重要性却贯穿整个模型生命周期。在进行特征工程时,我们需要充分利用数据科学的知识和技巧,结合具体的应用场景和业务需求,来制定出最合适的特征提取和转换策略。只有这样,我们才能为机器学习模型提供最有价值的输入,从而使其发挥出最大的潜力。总之,特征工程是机器学习中的一项关键任务,它需要我们用心去探索、去实践、去创新。只有不断地优化和完善特征工程的过程,我们才能构建出更加准确、更加可靠的机器学习模型,为实际应用带来更大的价值。

qq_38614074的博客 2万+

ADO.NET入门学习笔记(一)

软件工程专业课ADO.NET的学习笔记。 学习环境: VS2017 + MSSQL2017, 由于目前有台阿里的云服务器,后面会补上服务器下mysql的连接。 ADO.NET是微软对于数据库访问的框架。学校的课程第一课包含一部分内容。首先基于windows下的sql server需要一个命名空间 1 using System.Data.SqlClient; ...

aihuiju2691的博客 221

[Python] 为什么你的脚本明明没报错,却什么也没发生?

Python脚本运行后没报错却没结果?这是许多开发者遇到的棘手问题。文章分析了六种常见原因:代码未进入目标逻辑分支、输出路径错误、中间数据为空、异常被吞掉、异步操作未完成、运行了错误脚本版本。建议通过"过程可视化"排查,如打印关键变量、检查工作目录、验证数据状态等。职场中更应关注结果验证而非单纯代码执行,确保脚本真正解决问题。建立结果验证意识是从"会写代码"到"稳定交付"的关键转变。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 303

金三银四!风控建模岗面试题库大全:从理论到实战避坑指南

风控建模面试大全

阿黎逸阳的博客 767

ADO.NET 学习笔记(一)—— 开篇

ADO.NET 学习笔记(一)——开篇ADO.NET是微软Windows开发平台的数据技术,几乎任何商业环境的信息系统都要使用该技术进行数据处理。对于构建信息系统,必须掌握该技术。本课程参考自《ADO.NET 4 从入门到精通》,本书是Microsoft Press出版,清华大学翻译。有兴趣的读者可以购买原版阅读。微软出版社原先在.NET技术方面有两个系列的丛书,包括《微软....

weixin_33862514的博客 137

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ASP.NET学习笔记之ADO.NET(一)

笔记内容全部来自《C# Web应用程序入门经典》1. ADO.NET的体系结构         ADO.NET这个名字并不代表实际的内容——ADO原来是表示ActiveX Data Obejects,而是一种技术的名称。访问数据库最常用的方法是:首先连接到数据库,然后使用SQL语句。对于不同的数据库操作有不同的Command对象方法。如,ExecuteScalar()方法返回一个包含值的对象,Ex

yezhan的专栏 908

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ADO.NET学习笔记(一)(2)

ADO.NET学习笔记(一)(2) 仅仅做数据库事务处理的话就直接在服务端写事务语句(在SQLSERVER2000中写事务) 在事务中可以创建SavePoint来实现部分事务回滚 cmd.Transaction.save("NewCustomer") cmd.Transaction.Rollback("NewCustomer") (5)批处理查询如

270

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 一个经典的ADO.NET入门例子
下一篇: ADO.NET学习笔记(二)
firerainbow
博客等级 码龄23年 0粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值