首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ado.net的简单数据库操作(一)

我的理解是这样的,比如你查一个表里面有没有某个人,如果查到了,他就返回这个人所在这一列的第一个字段的值(通常是id之类的),所以啊,这条语句多用于你查的内容只有那么一条,比如登录的时候,你查某个人在不在表里...就通过DataReader来拿,这个DataReader啊,它不是一个袋子,在里面装东西,它不是袋子,他是一个人,是一个帮手,是一个纽带,你只能通过这个东西的帮忙,才能把你查询的数据从数据库内存里拿过来...(3)reader.FieldCount:这个东西的作用是 ==》获取当前行中的列数; 上面的实例中,也可以不用for循环去取某个行中的各个数据,而是直接把每个每个位置的数据取出来,这样做的话需要指导每个列的数据类型...这种reader.GetXXX()的写法有一个问题需要注意,那就是如果数据表中的数据为null,那么就会报出异常,因此在使用这个的时候需要对是否为空进行一个判断,判断方法如下: Console.Write...NULL" : reader.GetString(2)); 先判断是否为null,如果为null,则输出NULL,如果不为null,则输出存在的那个值,我修改了刚才的表,是其中有几个值为空,然后分别看看查询的结果

79851

ADO.NET 2.0 中的新增 DataSet 功能

1.1 和 Visual Studio 2003 在我的环境中运行上述代码时,执行时间大约为 30 分钟。...它用 DataReader 对象的内容加载 DataTable。如果 DataReader 包含多个结果集,则它实际上可以一次加载多个表。...如果您通过 DataSet/DataTable 和 DataAdapter 所做的所有工作就是用数据源中的数据填充 DataSet,修改该数据,然后在随后的某个时刻将该数据推送到数据源中,则这些工作会非常平稳地进行...如果 PreserveChanges 保留它的默认值 false,则合并操作会重写原始 DataTable 中的行的原始值和当前值,并且所作的所有更改都将丢失。...如果在包含多个表的 DataSet 上调用该方法,则 DataReader 将包含多个结果集。

3.2K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ADO.NET入门教程(六) 谈谈Command对象与数据检索

    摘要 到目前为止,我相信大家对于ADO.NET如何与外部数据源建立连接以及如何提高连接性能等相关知识已经牢固于心了。连接对象作为ADO.NET的主力先锋,为用户与数据库交互搭建了扎实的桥梁。...Command对象在ADO.NET世界里总是忙忙碌碌,它就像一个外交官,为用户传达了所有操作数据库的信息。 ---- 目录 准备 什么是Command对象?...如果找不到结果集中第一行的第一列,则返回 null 引用。 5. 如何创建Command对象?       在创建Command对象之前,你需要明确两件事情:(1)你要执行什么样的操作?...当检测到不再有数据行时,Read()方法将返回false。 通过HasRows属性,我们知道查询结果中是否有数据行。 当我们使用完DataReader时,一定要注意关闭。...它向数据库传达了用户的操作信息,而数据库则通过Command对象向用户返回处理结果。在下一篇文章中,我将讲解Command对象的一些高级应用,希望大家能继续关注和推荐。

    1.4K71

    ADO.Net学习总结

    第这种方法的优点是指定列后直接将该列的直接读取出来了,无需再转换,缺点是一旦指定的列不能按照指定的方式转换时就会抛出异常,比如数据库里字段的类型是string类型或者该字段的值为空时按照GetByte(...然后将行中的数据添加到 DataSet 中的DataTable 对象中或者直接填充到DataTable的实例中,如果 DataTable 对象不存在,则自动创建该对象。...5.DataTable对象 DataTable 是 ADO.NET 库中的核心对象,就像普通的数据库中的表一样,它也有行和列。它主要包括DataRow和DataColumn,分别代表行和列。...(2) 数据列(DataColumn) 数据表中的数据列(又称字段)定义了表的数据结构,例如,可以用它确定列中的数据类型和大小,还可以对其他属性进行设置。...例如,确定列中的数据是否是只读的、是否是主键、是否允许空值等;还可以让列在一个初始值的基础上自动增殖,增值的步长还可以自行定义。

    1.2K50

    Asp.net 视频摘要

    自己定义控件就是编写的一个类,此类从control或webcontrol派生。这样的笔用户控件复杂。可是更加灵活。功能也更加强大。...不为null时可继续处理。 2.Cookie:状态保持。存储于client。...Redirect方法为页面重定向操作。 三、数据訪问 1.ado.net是.net框架中的一套类库。使用这些类库,开发人员在应用程序中能够方便的使用数据。...DataSet:是ADO.NET非连接数据訪问模型的核心。能够把它看做全然在内存中的关系型数据库管理系统。 DataTable:类似于数据库中的表。也是以行/列格式存储数据的。...2).对于后两个我们则须要记住他们的模板。这两个控件同意模板定制。为呈现列表样式的数据提供了更大的灵活性。 而对于手动绑定数据方法中: Eval是仅仅读的单向数据绑定。

    99510

    C#基础知识复习

    first_expression : second_expression; 如果条件condition为 true,则计算第一表达式first_expression并以它的计算结果为准;如果为 false...如果此运算符的左边不为 null,则此运算符将返回左边的值;如果此运算符的左边为null,则返回右边的值。 C#中,用const和readonly修饰的字段有什么区别?...ADO.NET中,DataSet和DataReader的区别是什么?  DataSet(断开式的):数据集,表示内存中的“数据库”。...DataReader在从数据库中读取数据时是“面向连接的”,即DataReader在读取数据时是从数据库中一行一行读取,每次只会从数据库中读取一行数据(类似于数据库游标的行为),直到读完最后一行之后,才断开数据库连接... 数据库索引:是数据库表中一列或多列的值进行排序的一种结构。  作用:索引类似于一本书的目录,主要用于加快从表中查询数据的速度。 数据库索引的分类及区别?

    6.1K10

    DataReader类型化数据读取与装箱性能研究

    在.NET中,这个过程可以通过ADO.NET的DataReader对象来读取数据,然后将读取的数据映射到内存对象。本篇文章来讨论下不同方式的数据读取方式对性能的影响。...根据查询时候的SQL语句中指定的数据列的顺序和类型来使用DataReader是效率最高的方式,也就是DataReader类型化数据读取方法,使用字段索引而不是字段名称来读取数据的方式,如下面示例代码中的...例如上面的示例代码中,如果索引位置0的数据为空数据,则给UserDto对象的UserID属性赋值int类型的默认值0。MapToList方法会读取结果集的所有数据,读取完后自动关闭连接。...例如上面方法的注释中查询条件Sex字段的参数和Height字段的参数,其中Height字段的参数的格式是精度为5,小数位数为2的浮点数。...do循环之前,为要映射的POCO对象的每个属性访问器构建了一个MyFunc 委托,该委托实际上来自于SOD框架预定义的一个处理DataReader类型化数据读取的委托

    1.6K20

    ADO.NET入门教程(八) 深入理解DataAdapter(上)

    摘要 ADO.NET有两个核心组件:基于连接的Data Provider组件以及基于非连接的DataSet组件。基于连接的Data Provider组件常用于实时地从数据库中检索数据。...如果,每次我们检索数据库中的表或者行都需要连接一次数据库,那么性能和效率是十分低下的。实际上,ADO.NET提供了基于非连接的核心组件:DataSet。...DataAdapter的工作原理       要说DataAdapter是ADO.NET世界里最为复杂的部分,其实也不为过!但是,我们也不必惊慌。...,然后检查是否打开连接,如果没有打开连接则打开连接,紧接着调用DataReader接口检索数据,最后根据维护的映射关系,将检索到得数据库填充到本地的DataSet或者DataTable中。...Connection对象,DataReader对象,Paramter对象以及Command对象,都尽可能的为它服务。

    1.6K91

    ADO.NET操作

    闲话不多说,先给大家介绍一个C#操作数据库的方式。 ? 1. ADO.NET的介绍 在ADO.NET出现之前,C#连接数据库有很多种方式,各种框架琳琅满目。...ADO.NET定义了一系列操作数据库的接口和基类,而数据库厂商只需要根据自己的实际情况开发对应的实现类就可以了。 2....this[string name] { get; }//获取具有指定名称的列 public System.Data.IDataReader GetData (int i);//获取指定列序号的DataReader...将当前记录的值按顺序填充到数组中,并返回实际的数目 public bool IsDBNull (int i);//返回指定字段是否设置为 null 特别补充说明 ConnectionState 是一个枚举状态...在C#中,使用ADO.NET 向数据库添加值,需要手动拼接SQL语句来操作。

    1.8K20

    Enterprise Library 4 数据访问应用程序块

    ADO.NET 2.0 提供了如 DbCommand 类和 DbConnection 这样的类,这些类有助于从任何特定数据库实现中抽象出数据提供程序。...数据访问应用程序块包括一个抽象基类,它定义了一个通用的接口,并提供了许多在 ADO.NET 2.0 中可用的数据访问方法所需要的实现。...场景如下: 使用 DataReader 获取多行数据 使用 DataSet 获取多行数据 运行一个命令并获取输出参数 运行一个命令并获取单值项 在一个事务中执行多个操作 从 SQL...它们在调用后保持由存储过程使用的参数。代替指定用于存储过程参数的值,来自 DataSet 的值被用作输入。在这种情况下,AddInParameter 的适当重载是接受源列做为参数的方法之一。...这意味着对同样的存储过程的后继调用将不需要往返。 在使用参数发现时,最好的方法是指定所有的输出参数为 NULL 。

    1.8K60

    C#二十五 连接式访问数据库

    Ado.Net为我们提供SqlCommand类也在System.Data.SqlClient命名空间下: 属性 说明 Connection Command对象使用的数据库连接 CommandText 执行的...如果从一个方法返回DataReader,而且不能控制DataReader的相关连接的关闭,则这样做特别有用。 不能在层之间远程访问DataReader。...一个单一连接每次只能打开一个DataReader。如果想在相同的数据存储区上同时打开两个DataReader,则必须显式创建两个连接,每个DataReader一个。...这是ADO.NET为池化连接的使用提供更多控制的一种方法。 在默认情况下,DataReader每次Read时都要将整行加载到内存。这允许在当前行内随机访问列。...也就是说,一旦读过返回的列,就不能再读它的值了。 如果已经读取了来自DataReader的数据,但仍然有大量挂起的未读结果,则在关闭DataReader之前先要取消Command。

    10310

    c#面试题汇总

    2、ADO.NET中的五个主要对象 Connection:主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。...应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。 在一个单独的进程中可以存在多个应用程序域。应用程序域可以理解为一种轻量级进程。起到安全的作用。...readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。...因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。   ...答案:子类重新定义父类的某一个方法时,必须把父类的方法定义为virtual 在定义接口中不能有方法体,虚方法可以。 实现时,子类可以不重新定义虚方法,但如果一个类继承接口,那必须实现这个接口。

    5.2K20

    写一个通用数据访问组件

    data provider)稳定而强大功能的前提下来访问不同的数据源(data sources).一个小伙子甚至问我能不能写一些代码在程序运行时指定数据提供者(data provider)。...接口模型: 每一种数据提供者都实现了一些接口(interfaces),这些接口都定义在System.Data名字空间(namespace)里面。...类似于connection类,其它的ADO.net组件像DataAdapter, DataReader, Command也都是从某个接口继承下来的。 你们就将使用这些接口来实现通用数据访问类。...根据选择的连接类型,联结到数据库关且向DataGrid中填充数据。 在我的应用程序里面,我定义了下面的变量。...你可以扩展用ADO.net中其实的组组件来这个类的功能,我一直努力使这篇文章通俗易懂。

    57930

    数据库之ADO.NET基础知识整理

    ,返回受影响的行数,适合:insert、delete、update(对于其他语句返回-1) //cmd.该方法,相当于执行了SQL语句,如果不写这个或其余两个则相当于SQL没有执行。...4.只有对象调用Close(),的时候才会放入池中,如果一个连接对象一直在使用,则下次再创建一个连接对象发现池中没有,也会再创建一个新连接对象。...5.在池中的连接对象,如果过一段时间没有被访问则自动销毁。 十一:SQL注入漏洞攻击(连接的数据库)      1. 若想SQL注入在账户名后加上“' or1=1--”字符串。      2....                }            }         }      3.SQLHelper了自定义类的补充        1.在封装返回SqlDataReader的方法中关于Connection...ADO.Net中提供了数据集的机制,将查询结果填充到本地内存中,这样连接断开、服务器断开都不影响数据的读取。

    1.9K20

    MySQL数据库介绍——初始数据库MySQL

    它是由纵向的列和横向的⾏组成,⾏被称为记录,是组织数据的单位;列被称为字段,每⼀列表示记录的⼀个属性,都有相应的描述信息,如数据类型、数据宽度等。...例如⼀个有关作者信息的名为authors的表中,每个列包含所有作者的某个特定类型的信息,⽐如“姓名”,⽽每⾏则包含了某个特定作者的所有信息:编号、姓名、性别、专业,如图 2.1数据类型 数据类型决定了数据在计算机中的存储格式...表中的每⼀个字段就是某种指定数据类型,例如图 中“编号”字段为整数数据,“性别”字段为字符型数据。 2.2主键 主键( Primary Key )⽤于唯⼀地标识表中的每⼀条记录。...可以定义表中的⼀列或者多列为主键。主键列上不能有两⾏相同的值,也不能为空值。 二.数据库技术构成 数据库系统由硬件部分和软件部分共同构成,硬件主要⽤于存储数据库中的数据, 包括计算机、存储设备等。...3 、 ADO.NET ADO.NET 是微软在 .NET 框架下开发设计的⼀组⽤于和数据源进⾏交互的⾯向对象类库。

    32810

    C# 利用IDbDataAdapter IDataReader 实现通用数据集获取

    关于数据集 在.net 应用中,与数据库进行连接并查询相关数据,填充到数据集是我们经常用到的功能,数据集的表现形式基本包括如下: 1、 DataSet DataSet 是 ADO.NET 中的数据集合对象...2、 DataReader DataReader 也是数据集的一种形式,它与 DataSet 的区别在于,其只允许以只读、顺序向下的方式查看其中所存储的数据,高效和简单,是一种非常节省资源的数据对象...,如果我们不考虑后续操作,只是显示数据,则 DataReader 对象几乎是首选。...生成数据集对象需要利用 ADO.NET 中的数据提供者对象包括IDbConnection、IDbCommand、IDbDataParameter等,如何使用这些对象请参考我的文章: 《C#实现 IDbConnection...GetDataSet方法 GetDataSet 方法返回 object 对象,如果生成成功则返回 DataSet 对象,失败则返回错误信息字符串,其参数说明见下表: 序号 参数名 类型 说明 1 DbServerType

    14210

    Linux运维工程师面试题(6)

    1 数据库事务的四个特性及含义数据库事务的4个特性:原⼦性、持久性、⼀致性、隔离性原⼦性:整个事务中的所有操作要么全部完成, 要么全部都不完成, 如果在事务中操作出现异常,那么事务将会进⾏回滚,就像这个事务从来没有执...设置合适的字段属性:例如尽量把字段设置为 NOT NULL,这样引擎就不要对⽐NULL值。在表中建立索引,优先考虑where、group by使用到的字段。...如果分配给 char 或 varchar 列的值超过列的最⼤⻓度,则对值进⾏裁剪。varchar(M) 和 char(M),M都表示字符数。...csrf 成为跨站伪造请求,利用用户信任过的⽹站去执⾏⼀些恶意的操作如何防范:检查 Referer 字段,严格要求该字段只来自于信任的URL;添加校验 token,将 token 值附加在表单中,攻击者是无法获取这个字...log,在主从复制架构中,从服务器用于保存从主服务器的二进制日志中读取的事件;事务日志:transaction log,事务日志的写入类型为"追加",因此其操作为"顺序IO";通常也被称为:预写式日志

    27330

    一文搞清楚 MySQL count(*)、count(1)、count(col) 的区别

    如果二级索引不存在,则扫描聚集索引。大概意思就是有二级索引的情况下就使用二级索引,如果有多个二级索引优先选择最小的那个二级索引来降低成本,没有二级索引使用聚集索引。 下面通过测试来验证这些观点。...把一列中的name字段置为NULL,再进行count查询,结果返回999999 再把这列的NULL值置为空字符串,再进行count查询,结果返回1000000 所以,综上简单的使用索引字段统计行数能够命中索引...count(normal col):统计不带索引的字段 统计不带索引的字段的话就不会使用索引,而且也是只统计不为NULL值的行数。...对于MyISAM表, 如果从一个表中检索,没有检索到其他列并且没有 子句,COUNT(*)则优化为非常快速地返回,此优化仅适用于MyISAM 表,因为为此存储引擎存储了准确的行数,并且可以非常快速地访问...COUNT(1)仅当第一列定义为 时才进行相同的优化NOT NULL。----来自MySQL官网 这些优化都是建立在没有where 和 group by的前提下的。

    1.5K10
    领券