ASP.NET用一个程序详细研究DataReader

分类: asp.net   出处:iocblog整理  更新时间:2009-04-15   添加到收藏  

//***********************************************************
//*名称:一个程序详细研究datareader,同时显示command用法
//*功能:演示datareader的各项操作。
//*说明:如果需要文字说明请查看我的blog里面关于ado.net的文章
//*作者:雪冬寒
//*bolg:http://blog.csdn.net/bineon
//***********************************************************
using system;
using system.data;
using system.data.sqlclient;
using system.data.oledb;(文章来源 www.iocblog.net)

class sqlreader
{
 const string connstr = "data source=bineon;user id=sa;password=87345587;initial catalog=contract";
 sqlconnection conn;


 public sqlreader()
 {
  conn = new sqlconnection(connstr);
 }
 
 //**************************************
 //*演示datareader的两种取值方法
 //**************************************
 public void basicreader()
 {
  string sql="select * from friend";
  sqlcommand cmd;
  cmd = conn.createcommand();
  cmd.commandtext = sql;
  conn.open();
  sqldatareader reader = cmd.executereader();
  while(reader.read())
  {
   console.writeline("no:{0} name:{1} phonenum:{2}, address:{3}",reader.getint32(0).tostring(),reader.getstring(1),reader[2].tostring(),reader["faddress"].tostring());
  }
  showsplit();
  reader.close();
  conn.close();
 }
 
 //**************************************
 //*演示带参数查询的操作,使用sqlcilent
 //**************************************
 public void hasparamreader()
 {
  sqlcommand cmd;
  cmd = conn.createcommand();
  string sql = "select fname,fphone,faddress from friend where fid > @fid";
  cmd.commandtext = sql;
  sqlparameter param = new sqlparameter("@fid",sqldbtype.int,4);
  param.value = 15;
  cmd.parameters.add(param);
  conn.open();
  //当关闭reader的时候同时关闭数据库连接
  sqldatareader reader = cmd.executereader(commandbehavior.closeconnection);
  while(reader.read())
  {
   console.writeline("name:{0} phonenum:{1} address:{2}",reader.getstring(0),reader.getstring(1),reader.getstring(2));
  }
  showsplit();
  //无需关闭conn,系统会自动调用这个方法来关闭conn的。
  reader.close(); 
 }
 
 //**************************************
 //*演示带参数查询的操作,使用oledb
 //**************************************
 public void hasoledbparamreader()
 {
  sqlcommand cmd;
  cmd = conn.createcommand();
  string sql = "select fname,fphone,faddress from friend where fid > ?";
  string oledbconnstr = "provider=sqloledb;" + connstr;
  oledbconnection oleconn = new oledbconnection(oledbconnstr);
  oledbcommand olecmd = new oledbcommand(sql,oleconn);
  olecmd.parameters.add("nothing",15);
  oleconn.open();
  oledbdatareader olereader = olecmd.executereader();
  while(olereader.read())
  {
   console.writeline("name:{0} phonenum:{1} address:{2}",olereader.getstring(0),olereader.getstring(1),olereader.getstring(2));
  }
  showsplit();
  olereader.close();
  oleconn.close();
 }
 
 //**************************************
 //*演示存储过程的输出参数
 //**************************************
 public void outparamshow()
 {
  sqlcommand cmd;
  cmd = conn.createcommand();
  cmd.commandtext = "getinfo";
  cmd.commandtype = commandtype.storedprocedure;
  sqlparameter param = cmd.parameters.add("@fid",16);
  param = cmd.parameters.add("@fname",sqldbtype.varchar,8);
  param.direction = parameterdirection.output;
  param = cmd.parameters.add("@fphone",sqldbtype.varchar,8);
  param.direction = parameterdirection.output;
  conn.open();
  cmd.executenonquery();
  string fname = cmd.parameters["@fname"].value.tostring();
  string fphone = cmd.parameters["@fphone"].value.tostring();
  console.writeline(fname + "  " + fphone);
  conn.close();
  showsplit();
 }
 
 //**************************************
 //*演示读取多个无关记录集
 //************************************** 
 public void multiresult()
 {
  sqlcommand cmd;
  cmd = conn.createcommand();
  string sqla = "select fname from friend";
  string sqlb = "select fphone from friend";
  cmd.commandtext = sqla + ";" + sqlb;
  conn.open();
  sqldatareader reader= cmd.executereader();
  int i = 1;
  do
  {
   console.writeline("第" + i.tostring() + "个记录集内容如下: ");
   while(reader.read())
   {
    console.writeline(reader[0].tostring() + " ");
   }
   i++;
  }while(reader.nextresult()); //nextresult()移动到下一个记录集
  reader.close();
  conn.close();
  showsplit();
 }
 

[1] [2] 下一页


Tag: DataReader



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。