本文目录一览

1,net中读写数据库需要用到那些类他们的作用

DataSet:数据存储器。DataCommand:执行语句命令。DataAdapter:数据的集合,用语填充。
sqlconnection用来创建数据库连接 sqlcommand用其中的方法来执行sql语句获取你需要的返回值

net中读写数据库需要用到那些类他们的作用

2,net中读写数据库需要用到哪些类他们的作用

Connection类Command类DataReader类DataSet类DataAdapter类DataView类等
dataset:数据存储器。datacommand:执行语句命令。dataadapter:数据的集合,用语填充。

net中读写数据库需要用到哪些类他们的作用

3,adonet中读写数据库需要用到哪些类 他们的作用

一般来说常用的就4个: Connection对象,用来创建和打开,关闭数据库连接。 Command对象,用来执行各种sql语句或者调用存储过程。 Adapter对象,数据适配器,用来执行SQL语句,配合数据集执行比较多。 DataReader,只读的对象,有着很高的性能。

adonet中读写数据库需要用到哪些类 他们的作用

4,java中文件的读取实现以及用到哪些类

ava.io包中包括许多类提供许多有关文件的各个方面操作。1 输入输出抽象基类InputStream/OutputStream ,实现文件内容操作的基本功能函数read()、 write()、close()、skip()等;一般都是创建出其派生类对象(完成指定的特殊功能)来实现文件读写。在文件读写的编程过程中主要应该注意异常处理的技术。 2 FileInputStream/FileOutputStream: 用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象); 本地文件读写编程的基本过程为: ① 生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为FileOutputStream类); ② 调用FileInputStream或FileOutputStream类中的功能函数如read()、write(int b)等)读写文件内容; ③ 关闭文件(close())。 3 PipedInputStream/PipedOutputStream: 用于管道输入输出(将一个程序或一个线程的输出结果直接连接到另一个程序或一个线程的输入端口,实现两者数据直接传送。操作时需要连结); 4管道的连接: 方法之一是通过构造函数直接将某一个程序的输出作为另一个程序的输入,在定义对象时指明目标管道对象 PipedInputStream pInput=new PipedInputStream(); PipedOutputStream pOutput= new PipedOutputStream(pInput); 方法之二是利用双方类中的任一个成员函数 connect()相连接 PipedInputStream pInput=new PipedInputStream(); PipedOutputStream pOutput= new PipedOutputStream(); pinput.connect(pOutput); 5 管道的输入与输出: 输出管道对象调用write()成员函数输出数据(即向管道的输入端发送数据);而输入管道对象调用read()成员函数可以读起数据(即从输出管道中获得数据)。这主要是借助系统所提供的缓冲机制来实现的。 6随机文件读写: RandomAccessFile类(它直接继承于Object类而非InputStream/OutputStream类),从而可以实现读写文件中任何位置中的数据(只需要改变文件的读写位置的指针)。 随机文件读写编程的基本过程为: ① 生成流对象并且指明读写类型; ② 移动读写位置; ③ 读写文件内容; ④ 关闭文件。
package file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.ioexception; import java.io.inputstream; public class readfile { /** * @param args * @throws ioexception */ public static void main(string[] args) throws ioexception { // todo auto-generated method stub //将一个已存在文件加载到内存中,读取文本文件 inputstream is = new fileinputstream("xxx.txt"); //获得文件可读取的字节数 int num = is.available(); system.out.println(num); char[] cs = new char[num]; for (int i = 0; i < num; i++) { int num2 = is.read();//ashc码 char c = (char)num2;//ashc转换成字符 cs[i]=c; } string str = new string(cs); system.out.println(str); is.close(); } }

5,要建数据库表中字段名类别的数据类型是什么这个类别包

数据类型有很多比如:int 整型(1,2)、char varchar 字符型(1,汉字,ABC) PHP 是一种脚本语言 完全不是一个东西建议你买本书好好看看
sql查询:记录集的建立实际上主要是一个查询过程,sql的select语句用来查询数据源.在建立记录集时,crecordset会根据一些参数构造一个select语句来查询数据源,并用查询的结果创建记录集.明白这一点对理解crecordset至关重要.select语句的句法如下:select rfx-field-list from table-name [where m_strfilter][order by m_strsort]  其中table-name是表名,rfx-field-list是选择的列(字段).where和order by是两个子句,分别用来过滤和排序。下面是select语句的一些例子:select courseid, instructorid from sectionselect * from section where courseid=math202 and capacity=15select instructorid from section order by courseid asc  其中第一个语句从section表中选择courseid和instructorid字段.第二个语句从section表中选择courseid为math202且capacity等于15的记录,在该语句中使用了象"and"或"or"这样的逻辑连接符.要注意在sql语句中引用字符串、日期或时间等类型的数据时要用单引号括起来,而数值型数据则不用.第三个语句从section表中选择instructorid列并且按courseid的升序排列,若要降序排列,可使用关键字desc.提示:如果列名或表名中包含有空格,则必需用方括号把该名称包起来。例如,如果有一列名为“client name”,则应该写成“[client name]”。crecordset类有两个公共数据成员m_strfilter和m_strsort用来设置对记录的过滤和排序.在调用open或requery前,如果在这两个数据成员中指定了过滤或排序,那么open和requery将按这两个数据成员指定的过滤和排序来查询数据源.事实上,open函数在构造select语句时,会把m_strfilter和m_strsort的内容放入select语句的where和order by子句中.如果在open的lpszsql参数中已包括了where和order by子句,那么m_strfilter和m_strsort必需为空.调用无参数成员函数close可以关闭记录集.在调用了close函数后,程序可以再次调用open建立新的记录集.crecordset的析构函数会调用close函数,所以当删除crecordset对象时记录集也随之关闭。visual c++中的odbc编程实例microsoft developer studio为大多数标准的数据库格式提供了32位odbc驱动器。这些标准数据格式包括有:sql server、access、paradox、dbase、foxpro、excel、oracle以及microsoft text。如果用户希望使用其他数据格式,则需要安装相应的odbc驱动器及dbms。  用户使用自己的dbms数据库管理功能生成新的数据库模式后,就可以使用odbc来登录数据源。对用户的应用程序来说,只要安装有驱动程序,就能注册很多不同的数据库。登录数据库的具体操作参见有关odbc的联机帮助。  一、mfc提供的odbc数据库类  visual c++的mfc基类库定义了几个数据库类。在利用odbc编程时,经常要使用到 cdatabase(数据库类)、crecordset(记录集类)和crecordview(可视记录集类)。  cdatabase类对象提供了对数据源的连接,通过它可以对数据源进行操作。  crecordset类对象提供了从数据源中提取出的记录集。crecordset对象通常用于两种形式:动态行集(dynasets)和快照集(snapshots)。动态行集能与其他用户所做的更改保持同步,快照集则是数据的一个静态视图。每种形式在记录集被打开时都提供一组记录,所不同的是,当在一个动态行集里滚动到一条记录时,由其他用户或应用程序中的其他记录集对该记录所做的更改会相应地显示出来。  crecordview类对象能以控件的形式显示数据库记录,这个视图是直接连到一个crecordset对象的表视图。  二、应用odbc编程  应用visual c++的appwizard可以自动生成一个odbc应用程序框架,步骤是:打开file菜单的new选项,选取projects,填入工程名,选择mfc appwizard (exe),然后按appwizard的提示进行操作。  当appwizard询问是否包含数据库支持时,如果想读写数据库,那么选定database view with file support;如果想访问数据库的信息而不想写回所做的改变,那么选定database view without file support。  选好数据库支持之后,database source 按钮会被激活,选中它去调用data options对话框。在database options对话框中会显示出已向odbc注册的数据库资源,选定所要操作的数据库,如:super_es,单击ok后出现select database tables对话框,其中列举了选中的数据库包含的全部表;选择要操作的表后,单击ok。在选定了数据库和数据表之后,就可以按照惯例继续进行appwizard操作。  特别需要指出的是:在生成的应用程序框架view类(如:csuper_esview)中,包含一个指向csuper_esset对象的指针m_pset,该指针由appwizard建立,目的是在视表单和记录集之间建立联系,使得记录集中的查询结果能够很容易地在视表单上显示出来。  要使程序与数据源建立联系,需用cdatebase::openex()或cdatabase::open()函数来进行初始化。数据库对象必须在使用它构造记录集对象之前初始化。 三、实例  1.查询记录  查询记录使用crecordset::open()和crecordset::requery()成员函数。在使用crecordset类对象之前,必须使用crecordset::open()函数来获得有效的记录集。一旦已经使用过crecordset::open()函数,再次查询时就可以应用crecordset::requery()函数。  在调用crecordset::open()函数时,如果将一个已经打开的cdatabase对象指针传给crecordset类对象的m_pdatabase成员变量,则使用该数据库对象建立odbc连接;否则如果m_pdatabase为空指针,就新建一个cdatabase类对象,并使其与缺省的数据源相连,然后进行crecordset类对象的初始化。缺省数据源由getdefaultconnect()函数获得。也可以提供所需要的sql语句,并以它来调用crecordset::open()函数,例如:super_esset.open(afx_database_use_default,strsql);  如果没有指定参数,程序则使用缺省的sql语句,即对在getdefaultsql()函数中指定的sql语句进行操作:  cstring csuper_esset::getdefaultsql()    对于getdefaultsql()函数返回的表名,对应的缺省操作是select语句,即:  select *from basicdata,mainsize  在查询过程中,也可以利用crecordset的成员变量m_strfilter和m_strsort来执行条件查询和结果排序。m_strfilter为过滤字符串,存放着sql语句中where后的条件串;m_strsort为排序字符串,存放着sql语句中order by后的字符串。如:  super_esset.m_strfilter=″type=电动机″;  super_esset.m_strsort=″voltage″;  super_esset.requery();  对应的sql语句为:  select *from basicdata,mainsize  where type=电动机  order by voltage  除了直接赋值给m_strfilter以外,还可以使用参数化。利用参数化可以更直观、更方便地完成条件查询任务。使用参数化的步骤如下:  s声明参变量:  cstring p1;  float p2;  s在构造函数中初始化参变量:  p1=_t(″″);  p2=0.0f;  m_nparams=2;  s将参变量与对应列绑定:  pfx->setfieldtype(cfieldexchange::param)  rfx_text(pfx,_t(″p1″),p1);  rfx_single(pfx,_t(″p2″),p2);  完成以上步骤后就可以利用参变量进行条件查询:  m_pset->m_strfilter=″type=? and voltage=?″;m_pset->p1=″电动机″;  m_pset->p2=60.0;  m_pset->requery();  参变量的值按绑定的顺序替换查询字串中的“?”通配符。  如果查询的结果是多条记录,可以用crecordset类的函数move()、movenext()、moveprev()、movefirst()和movelast()来移动光标。  2.增加记录  增加记录使用addnew()函数,要求数据库必须是以允许增加的方式打开:  m_pset->addnew(); //在表的末尾增加新记录  m_pset->setfieldnull(&(m_pset->m_type), false);  m_pset->m_type=″电动机″;  ……  //输入新的字段值  m_pset->update();  //将新记录存入数据库  m_pset->requery();  //重建记录集  3.删除记录  可以直接使用delete()函数来删除记录,并且在调用delete()函数之后不需调用update()函数:  m_pset->delete();  if (!m_pset->iseof())  m_pset->movenext();  else  m_pset->movelast();  4.修改记录  修改记录使用edit()函数:  m_pset->edit();  //修改当前记录  m_pset->m_type=″发电机″;  //修改当前记录字段值   ……  m_pset->update(); //将修改结果存入数据库  m_pset->requery();  5.撤消操作  如果用户选择了增加或者修改记录后希望放弃当前操作,可以在调用update()函数之前调用:  crecordset::move(afx_move_refresh)来撤消增加或修改模式,并恢复在增加或修改模式之前的当前记录。其中,参数afx_move_refresh的值为零。  6.数据库连接的复用  在crecordset类中定义了一个成员变量m_pdatabase:  cdatabase* m_pdatabase;  它是指向对象数据库类的指针。如果在crecordset类对象调用open()函数之前,将一个已经打开的cdatabase类对象指针传给m_pdatabase,就能共享相同的cdatabase类对象。如:  cdatabase m_db;  crecordset m_set1,m_set2;  m_db.open(_t(″super_es″)); //建立odbc连接  m_set1.m_pdatabase=&m_db;  //m_set1复用m_db对象  m_set2.m_pdatabse=&m_db;  // m_set2复用m_db对象  7.sql语句的直接执行  虽然我们可以通过crecordset类完成大多数的查询操作,而且在crecordset::open()函数中也可以提供sql语句,但是有时候我们还是希望进行一些其他操作,例如建立新表、删除表、建立新的字段等,这时就需要使用cdatabase类直接执行sql语句的机制。通过调用cdatabase::executesql()函数来完成sql语句的直接执行:  bool cdb::executesqlandreportfailure(const cstring& strsql)      //直接执行sql语句}  catch (cdbexception,e)    strmsg.loadstring(ids_execute_sql_failed);  strmsg+=strsql;  return false;}  end_catch  return true;}  应当指出的是,由于不同的dbms提供的数据操作语句不尽相同,直接执行sql语句可能会破坏软件的dbms无关性,因此在应用中应当慎用此类操作。  8.动态连接表  表的动态连接可以利用在调用crecordset::open()函数时指定sql语句来实现。同一个记录集对象只能访问具有相同结构的表,否则查询结果将无法与变量相对应。void cdb::changetable() if (m_pset->isopen()) m_pset->close(); switch (m_id)   case 0:   m_pset->open(afx_db_use_default_type,″select * from slot0″);   //连接表slot0   m_id=1;   break;  case 1:   m_pset->open(afx_db_use_default_type,″select * from slot1″); //连接表slot1   m_id=0;   break; }}  9.动态连接数据库  可以通过赋与crecordset类对象参数m_pdatabase来连接不同数据库的cdatabase对象指针,从而实现动态连接数据库。void cdb::changeconnect() cdatabase* pdb=m_pset->m_pdatabase; pdb->close(); switch (m_id)   case 0:   if (!pdb->open(_t(″super_es″)))    //连接数据源super_es       afxmessagebox(″数据源super_es打开失败″,″请检查相应的odbc连接″, mb_ok|mb_iconwarning);    exit(0);   }   m_id=1;   break;  case 1:   if (!pdb->open(_t(″motor″)))   //连接数据源motor       afxmessagebox(″数据源motor打开失败″,″请检查相应的odbc连接″, mb_ok|mb_iconwarning);    exit(0);   }   m_id=0;   break; }}  总结:  visual c++中的odbc类库可以帮助程序员完成绝大多数的数据库操作。利用odbc技术使得程序员从具体的dbms中解脱出来,从而可以减少软件开发的工作量,缩短开发周期,并提高效率和软件的可靠性。

文章TAG:读写  数据  数据库  需要  读写数据库需要哪些类  
下一篇