首页 数据库 mysql教程 .NET数据库连接中的对象

.NET数据库连接中的对象

Jun 07, 2016 pm 03:56 PM
.net 学习 对象 数据库 视频 连接

在学习VB.NET视频时,其中有几个单元讲到了.NET的数据库设计与连接。对于数据库的连接,其实我们并不陌生,原来在做红皮书和机房收费系统的时候,我们都有接触过,可是,在我的印象中,这些关于数据库连接的知识很是模糊。对于数据库连接对象更是一知半解。

在学习VB.NET视频时,其中有几个单元讲到了.NET的数据库设计与连接。对于数据库的连接,其实我们并不陌生,原来在做红皮书和机房收费系统的时候,我们都有接触过,可是,在我的印象中,这些关于数据库连接的知识很是模糊。对于数据库连接对象更是一知半解。

回过头来,翻了一遍红皮书中的几个实例,里面讲到了利用ADO控件来连接数据库,它涉及到的数据库连接对象有7个(connection,command ,recordset,Field,Property,parameter,error)

那么对于如今学习的.net中数据库连接又涉及到了哪些对象呢?

其实,我们不难发现,无论是以前的ADO还是现在的.NET,在数据库连接中都存在两个永远不变的对象connection和command,那么在.net中它们是如何使用的呢?

1.Connection

数据库连接对象,负责连接数据库

具体使用:对于不同的数据提供者(provider)有不同的命名空间,但大体上都是一致的,如下所示以SQLserver为例:

Imports ss=System.Data.SqlClient '声明使用的命名空间

Dim sConn as string,dbConn as ss.SqlConnection
sConn="Server=localhost; Database=Dbname;integrated Security=SSPI" '连接字符串

dbConn=new ss.SqlConnection(sConn) '使用前实例化连接对象
dbConn.Open() '至此,就可以连接上数据库来对数据库中的数据进行操作了
登录后复制

2.Command

数据库命令对象,主要用来执行包括增加,删除,修改及查询等操作命令,也可用来执行预存储程序。

根据数据库提供者类型可将command对象分为四类分别是SqlCommand,OledbCommand,OdbcCommand,OracleCommand.

使用时,只需将它进行实例化即可

Dim ssCmd as ss.SqlCommand

ssCmd=new ss.SqlCommand(strSql,sConn) 'strSql为命令语句如select等,sConn为连接字符接上
登录后复制

当然,除此之外,command对象还有三个常用的方法:

ExecuteNonQuery():返回受影响的行数

ExecteScalar():从数据库中检索单个值,返回结果的第一行第一列

ExecuteReader():执行一个SQL语句,返回一个DataReader对象

谈到DataReader对象,这是什么意思呢?我们来介绍.net中的其余对象

3.DataReader

一个简单的数据集,用于从数据源中检索只读数据集,此对象在检索数据时,只允许只读、顺向方式读取数据,不能返回,同时,此对象可通过command对象中的ExecuteReader()方法从数据源中检索数据来创建。

它的read()方法用来读取下一条记录,若读到数据则返回TRUE,否则返回FALSE

在上述二者的基础上看看它的具体使用:

Dim ssReader as ss.SqlDataReader '和上面的command是一个道理

strSql="select * from Customers order by lastName ASC,firstName ASC;"

ssReader=ExecuteReader()'执行SQL指令

'开始读记录,下面firstName和lastName为两个列名,共组成一条记录,每循环一次,返回一条记录

do while ssReader.Read()

    Fn=System.Convert.ToString(ssReader("firstName"))

    In=System.Convert.ToString(ssReader("lastName"))

    me.listbox1.Items.Add(In,+ Fn)

loop
登录后复制

那么除此之外,在.设计.NET数据访问时,为了能够离线的对数据库进行操作,便将ADO数据连接中的Recordset对象用DataSet代替,来实现离线操作数据库的目的

在ADO中Recordset成为数据集对象,那么在.NET中的数据集对象就是DataSet了!

4.DataSet

通俗一点讲,其实就是一个离线的Recordset,用于离线处理数据,这是因为DataSet提供了一个离线的数据源(通常以表格形式显示),以减轻网络的负担。

\

如图所示,在DataSet的使用过程中,还需要借助于DataAdapter这个对象,那么DataAdapter在这里到底起什么作用呢?

其实,我们如果认真分析,如果DataSet在客户端想要进行离线处理,那么虽然说是自己来充当数据源,但是,如果它不和真正的数据源连接起来,那么最终还是起不到离线处理的效果。于是,我们必须在真正的数据源和DataSet之间建起一座桥梁,来使二者之间能够通信。那么这个桥梁就是DataAdapter,显然二者是不可分割的。我们来具体了解一下DataAdapter这个对象。

5.DataAdapter

.NET中的适配器对象,充当数据源和DataSet之间检索和保存数据的桥梁。那么他是如何实现二者之间的通信的呢?

首先,它通过数据库连接对象(connection)来连接数据源,其次,通过数据库命令对象(command)来使用规定的操作从数据源来检索数据将其送往DataSet,或从DataSet送往数据源。

通过上述介绍,对于DataSet和DataAdapter的具体功能有了一定的了解,那么二者是如何协调配合使用的呢?来看一个小例子:

仍然在上述connection和command部分代码的基础上进行操作:

Dim adapter as ss.SqlDataAdapter

Dim ds as System.Data.DataSet

’通过下面的程式码来讲数据源中的数据传到DataSet中

Sql="select * from Products;"

adapter=new ss.SqlDataAdapter(ssCmd) ’要传输的命令为ssCmd中的命令

ds=new System.Data.DataSet() '实例化dataset

ssConn.Open() '这里的open和close方法可省略,dataset会自动检查连接是否成功

Adapter.Fill(ds)

ssConn.Close()

’可利用下面的程式码来将dataset中的数据提取到listbox中

Ds.Tables("Table").TableName="Products"

Dim row as System.Data.DataRow,name as string

For each row in ds.Table("Products").Rows

       Name=convert.ToString(row.Item("ProductName"))

       Me.listBox1.Items.Add(name)

Next row
登录后复制

以上就是在.net视频中讲到的有关ado.net数据库连接中常用到的对象。通过了解这些对象的基本功能和用法,我们可以对.net数据库连接有更近一步的了解.

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

微博发视频怎么不压缩画质_微博发视频不压缩画质方法 微博发视频怎么不压缩画质_微博发视频不压缩画质方法 Mar 30, 2024 pm 12:26 PM

1、首先打开手机微博,点击右下角【我】(如图所示)。2、接着点击右上角【齿轮】打开设置(如图所示)。3、然后找到并打开【通用设置】(如图所示)。4、随后进入【视频随着】选项(如图所示)。5、再打开【视频上传清晰度】设置(如图所示)。6、最后选择【原画质】就能不压缩了(如图所示)。

分享几个.NET开源的AI和LLM相关项目框架 分享几个.NET开源的AI和LLM相关项目框架 May 06, 2024 pm 04:43 PM

当今人工智能(AI)技术的发展如火如荼,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI模型LLM相关的项目框架,希望能为大家提供一些参考。https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一种开源的软件开发工具包(SDK),旨在将大型语言模型(LLM)如OpenAI、Azure

Hibernate 如何实现多态映射? Hibernate 如何实现多态映射? Apr 17, 2024 pm 12:09 PM

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

如何将 MySQL 查询结果数组转换为对象? 如何将 MySQL 查询结果数组转换为对象? Apr 29, 2024 pm 01:09 PM

将MySQL查询结果数组转换为对象的方法如下:创建一个空对象数组。循环结果数组并为每一行创建一个新的对象。使用foreach循环将每一行的键值对赋给新对象的相应属性。将新对象添加到对象数组中。关闭数据库连接。

iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

深入解析HTML如何读取数据库 深入解析HTML如何读取数据库 Apr 09, 2024 pm 12:36 PM

HTML无法直接读取数据库,但可以通过JavaScript和AJAX实现。其步骤包括建立数据库连接、发送查询、处理响应和更新页面。本文提供了利用JavaScript、AJAX和PHP来从MySQL数据库读取数据的实战示例,展示了如何在HTML页面中动态显示查询结果。该示例使用XMLHttpRequest建立数据库连接,发送查询并处理响应,从而将数据填充到页面元素中,实现了HTML读取数据库的功能。

如何在PHP中处理数据库连接错误 如何在PHP中处理数据库连接错误 Jun 05, 2024 pm 02:16 PM

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

See all articles