大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> ado.net详细研究(二) —— DataReader(一)

ado.net详细研究(二) —— DataReader(一)

时间: 2021-07-31 作者:daque

这次咱们精细接洽datareader。我部分最爱好的即是datareader,固然它不如dataset宏大,然而在很多情景下咱们需要的是精巧的读取数据而不是洪量的在外存内里缓存数据。比方在搜集上每个用户都缓存洪量的dataset,这很大概引导效劳器外存不及。其余datareader更加符合读取洪量的数据,由于它不在外存中缓存数据。因为底下的计划都安排到数据库操纵,咱们假造一个小名目:部分通信录(单用户),这表示着咱们需要一个contract的数据库,包括admin和fridend:admin :aname,apasswordfriend :fname,fphone,faddress,fid(主键)固然,你不妨按照本人的需要安排friend表,比方增添fsex等字段,这边不精细陈列。对应数据库创造文献:if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[admin]') and objectproperty(id, n'isusertable') = 1)drop table [dbo].[admin]goif exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[friend]') and objectproperty(id, n'isusertable') = 1)drop table [dbo].[friend]gocreate table [dbo].[admin] ( [aname] [varchar] (8) collate chinese_prc_ci_as not null , [apassword] [varchar] (16) collate chinese_prc_ci_as not null ) on [primary]gocreate table [dbo].[friend] ( [fid] [int] identity (1, 1) not null , [fname] [varchar] (8) collate chinese_prc_ci_as not null , [fphone] [varchar] (12) collate chinese_prc_ci_as null , [faddress] [varchar] (100) collate chinese_prc_ci_as null ) on [primary]go在计划datareader之前咱们必需领会connection和command,固然前方咱们仍旧简略的引见过了。以次的一切计划都对准sql server2000,运用的定名空间为system.data.sqlclient。固然即使你需要运用oledb,那是很简单的(基础上是把sql替代变成oledb就不妨了)。1, sqlconnection类贯穿sql server开始必需范例化一个sqlconnection东西:sqlconnection conn = new sqlconnection(connectionstring);conn.open();大概sqlconnection conn = new sqlconnection();conn.connectionstring = connectionstring;conn.open();我比拟爱好前者,然而当你需要从新运用connection东西去贯穿其余的数据库的功夫,第二种本领特殊灵验(然而这种时机很少,普遍来说一个袖珍体例只对应一个数据库——部分觉得^_^)。sqlconnection conn = new sqlconnection();conn.connectionstring = connectionstring1;conn.open();//do somethingconn,close();conn.connectionstring = connectionstring2;conn.open();//do something elseconn,close();提防只相关闭一个贯穿此后本领运用其余的贯穿。即使你不领会connection东西的状况,不妨运用state属性,它的值为open大概closed,固然也再有其余值如executing大概broken,然而sql server等暂时本子都不扶助。if(conn.state == connectionstate.open) conn.colse();上头从来提到connectionstring,普遍贯穿sql server的字符串为:data source = servername;initial catalog =contract;user id =sa;password= yourpassword;即使你的sql server运用的是windows集成暗号,则是:data source = servername;initial catalog = contract;integrated security=sspi;至于其余的oledb大概odbc贯穿串不妨到http://www.connectionstrings.com 贯穿上数据库此后确定牢记封闭贯穿,在ado.net中当connection东西胜过范畴时贯穿不会机动封闭。 翻开数据库贯穿此后咱们要实行吩咐,以是咱们计划一下command类2 sqlcommand类 创造数据库贯穿此后咱们需要考察和操纵数据库——crud:create、read、update、delete。为了实行吩咐咱们创造command东西,comand东西诉求实行connection东西和commandtext东西。sqlcommand cmd = new sqlcommand();cmd.connection = connectionobject;//比方咱们先前创造的conn东西cmd.commandtext = commandtext;//比方一个select语句string commandtext = “select * from friend”;固然咱们也不妨运用保存进程,这个此后计划。其余的本领:sqlcommand cmd = new sqlcommand(commandtext);cmd.connection = connectionobject;//比方咱们先前创造的conn东西大概sqlcommand cmd = new sqlcommand(commandtext,connecionobject);其余再有一个包括三个参数的结构因变量,咱们不计划。安排到的是工作处置。有了command东西此后咱们需要实行操纵,然而实行前请确定牢记翻开你的数据库贯穿,要不会有特殊。sqlcommand东西供给底下4个实行本领:l executenonqueryl executescalarl executereaderl executexmlreaderexecutenonquery本领实行不归来截止的吩咐,常常运用它实行插入、简略、革新操纵。比方咱们对contract数据库举行操纵:string sqlins = “insert [friend] (fname,fphone,faddress) values (‘雪冬寒’,’027-87345555’,’武汉城大学学宏博公寓’);cmd.commandtext = sqlins;cmd.executenonquery();string sqlupdate = “update [frined] set faddress = ‘武汉城大学学’ where fid = 1”;cmd.commandtext = sqlupdate;cmd.executenonquery();string sqldel = “delete from [friend] where fid = 1; cmd.commandtext = sqldel;cmd.executenonquery();注:即使你要尝试之上代码,请本人抄写,不要复制和粘贴,如许会生存笔墨缺点(华语和英语的标记题目)。 executescalar本领实行归来单个值的吩咐,比方咱们需要统计体例中一切接洽人的数目,就不妨如许:sqlcommand cmd = new sqlcommand(“select count(*) from friend”, conn);conn.open();int friendcount = (int) cmd.executescalar();messagebox.show(“共” + friendcount.tostring() + “个接洽人”); 证明:吩咐不妨归来多个截止,此时executescalar本领将归来第一条龙第一个字段的值,同声其余一切值不行考察,这表示着即使象赢得最佳的本能,您该当结构符合的select查问,再不查问的截止会合尽大概少的包括特殊的数据。即使只对单个归来值感爱好,这个本领是首要选择的本领。其余该本领归来object典型数据,一切保护举行符合的典型变换是您的负担,要不您将获得特殊。 executexmlreader本领实行归来一个xml字符串的吩咐。它将归来一个包括所归来的sml的system.xml.xmlreader东西。这个本领我一问三不知,不作计划^_^。(因为作品不许操纵64k,我只能划分贴)

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.