您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > Vbnet数据库编程
Vb.net数据库编程SqlserverconnectionDataadapterdatasetdatagrid数据库使用数据库的驱动程序来来连接数据库获取数据将获取的数据填充存放到副本中数据在内存中的副本数据从副本中显示出来应用程序中的表现.net中一般使用ado.net来和数据库进行连接•与数据库连接•数据库查询•使用DataAdapter获取数据•处理DataSet对象与数据库连接•如果是和微软的ACCESS或SQLSERVER连接,使用的CONNECTION是OleDbConnection,这也是最常使用的连接对象•需要在VB.NET中引用System.Data,System.Data.OleDb以及System.Data.SqlClient•ImportsSystem.Data•ImportsSystem.Data.Oledb•ImportsSystem.Data.sqlclient•创建CONNECTION对象•Dimcnasoledbconnection•Cn=newoledbconnection()•连接字符串(告诉connection对象使用什么用户名和密码,连接哪一台计算机上的哪个数据库)•连接字符串形式如:•provider=sqloledb;datasource=127.0.0.1;initialcatalog=pubs;userid=sa;•开放连接•Cn.open()•关闭连接•Cn.close()•.net中默认使用连接池来和数据库连接;而且连接池默认是打开的,所以在调用CLOSE方法时,与数据库的实际连接并没有真正被关闭,而是被传递到池中,以后它就在池中重用•如果不想使用连接池•Oledbconnectionoledbservices=-4;•Sqlconnectionpooling=false;•动态的数据库连接•通过给Oledbconnection的connectionstring属性赋不同的值来动态连接数据库•在OLEDBCONNECTION提供的属性中•database数据库名称•Datasource数据库位置•State当前状态是打开或关闭•Changedatabase方法•Cn.changedatabase(“northwind”)•Statechange事件:连接状态改变时需要做的事情数据库查询•使用command对象•执行SQL语句•创建command:•Dimcmdasnewoledbcommand•cmd.connection=cn•cmd.commandtext=“select*fromauthors”•执行无返回行的查询•Cmd.executenonquery()•对于update语句来说,有时会修改某些行的值,有时却不会修改任何行,但是不会发生任何异常•Command对象将所影响的行数作为Cmd.executenonquery()的返回值•执行一个有返回集的查询•Cmd.executereader•返回一个数据集(对象)•Dimrdrasoledbdatareader=cmd.executereader()•使用此数据集•Rdr.read()•第一次使用此方法会移动游标到结果集的第一行,以后每次使用时会自动下移一行.•如果数据集已经结束则此方法会返回FALS•Whilerdr.read()•rdr.read(“customerid”)•Endwhile•缺点•必须随时用完随时关闭,否则在试图打开第二个datareader,就会出现异常.•Datareader会把connection对象锁定•数据是只读的•游标只能向前,不能后退.如果需要在各个查询结果之间前后移动,则应该使用DATASET•优点:•速度快•执行返回单值的查询•Selectcount(*)fromcustomers•使用datareader或着dataset来获取单值是可以的,但是有些大材小用.•Command有一专门为此类设计的方法:executescalar,获取第一行第一列的数据•参数化查询•Selectorderid,customeridfromorderswherecustomerid=?•?是参数标记•给参数赋值•Cmd.parameters.add(“@customerid”,oledbtype.wchar,5)•Cmd.parameters(0).value=“jcc”使用DataAdapter获取数据•dataadapter是专门用来处理脱机数据的•Dataadapter将查询到的数据放入DATASET中,然后就不需要连接数据库了•实际上DATASET就相当于一个小数据库,不过是放在内存中的.•Da.fill(dataset)•Mapping•Datatablemapping和datacolumnmapping•Dimdaasoledbdataadapter•Dimtblmapasdatatablemapping•Dimcolmapasdatacolumnmapping•Tblmap=da.tablemappings.add(“table”,”e”)•Colmap=da.columnmappings.add(“lname”,”xing”)•根据dataadapter对象的FILL方法分页•Da.fill(dataset,0,20,”student”)•Da将选中的数据中前20行放在DATASET的student表中,其他的数据丢弃(并不表示从数据库中只找到20行)•打开和关闭连接方面是Dataadapter和command之间的区别最大的区别•Dimcnasoledbconnection•Dimdaasdataadapter•Dimcmdasolecommand•如果cn没有打开连接,那么当da要查询数据库时,它会自动打开连接使用完毕后自动关闭;cmd则会返回一个异常.•多次调用FILL方法•如果要刷新DATASET中的数据,最简单方法是清空DATASET,然后在调用fill方法.否则数据表中的记录会又一次被放入dataset中了.(原来的数据还在)处理DataSet对象•向dataset中已有的数据表添加数据•Dimrowasdatarow=ds.tables(“student”).newrow•Row(“name”)=“jichengchao”•Row(“telphon”)=“3511045”•修改dataset中已有的数据表•Row=ds.tables(“student”).rows.find(“jichengchao”)•Ifrowisnothingthen•else•Row(“name”)=“chenghui”•endif•Row.beginedit•Row(“name”)=“chenghui”•Row.endedit•可以调用canceledit取消修改•删除数据行•Row.delete即可•但是只是相VFP一样,在DATASET中做了一个删除标记,并没有删除数据,更美有删除数据库中的数据•DATASET相当与一个真正数据库中表的副本,所有的修改,删除,增加,都只是暂时表存,只有当提交给数据库后才能在数据库中生效•Da.update(ds)
本文标题:Vbnet数据库编程
链接地址:https://www.777doc.com/doc-3395297 .html