一个程序详细研究DataReader

一个程序详细研究DataReader // ***********************************************************
一个程序详细研究DataReader
// *名称:一个程序详细研究DataReader,同时显示Command用法
一个程序详细研究DataReader
// *功能:演示DataReader的各项操作。
一个程序详细研究DataReader
// *说明:如果需要文字说明请查看我的BLOG里面关于ado.net的文章
一个程序详细研究DataReader
// *作者:雪冬寒
一个程序详细研究DataReader
// *BOLG: http://blog.csdn.net/bineon
一个程序详细研究DataReader
// ***********************************************************
一个程序详细研究DataReader
using  System;
一个程序详细研究DataReader
using  System.Data;
一个程序详细研究DataReader
using  System.Data.SqlClient;
一个程序详细研究DataReader
using  System.Data.OleDb;
一个程序详细研究DataReader
一个程序详细研究DataReader
class  SqlReader
一个程序详细研究DataReader
{
一个程序详细研究DataReader 
const string connStr = "data source=bineon;user id=sa;password=87345587;initial catalog=contract";
一个程序详细研究DataReader SqlConnection conn; 
一个程序详细研究DataReader
一个程序详细研究DataReader
一个程序详细研究DataReader 
public SqlReader()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  conn 
= new SqlConnection(connStr);
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader 
//*演示DataReader的两种取值方法
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader
 public void basicReader()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  
string sql="select * from friend";
一个程序详细研究DataReader  SqlCommand cmd; 
一个程序详细研究DataReader  cmd 
= conn.CreateCommand();
一个程序详细研究DataReader  cmd.CommandText 
= sql;
一个程序详细研究DataReader  conn.Open();
一个程序详细研究DataReader  SqlDataReader reader 
= cmd.ExecuteReader();
一个程序详细研究DataReader  
while(reader.Read())
一个程序详细研究DataReader  
{
一个程序详细研究DataReader   Console.WriteLine(
"No:{0}\tName:{1}\tPhoneNum:{2},\tAddress:{3}",reader.GetInt32(0).ToString(),reader.GetString(1),reader[2].ToString(),reader["Faddress"].ToString());
一个程序详细研究DataReader  }

一个程序详细研究DataReader  showSplit();
一个程序详细研究DataReader  reader.Close();
一个程序详细研究DataReader  conn.Close();
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader 
//*演示带参数查询的操作,使用SqlCilent
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader
 public void hasParamReader()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  SqlCommand cmd; 
一个程序详细研究DataReader  cmd 
= conn.CreateCommand();
一个程序详细研究DataReader  
string sql = "select Fname,Fphone,Faddress from friend where Fid > @Fid";
一个程序详细研究DataReader  cmd.CommandText 
= sql;
一个程序详细研究DataReader  SqlParameter param 
= new SqlParameter("@Fid",SqlDbType.Int,4);
一个程序详细研究DataReader  param.Value 
= 15;
一个程序详细研究DataReader  cmd.Parameters.Add(param);
一个程序详细研究DataReader  conn.Open();
一个程序详细研究DataReader  
//当关闭reader的时候同时关闭数据库连接
一个程序详细研究DataReader
  SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
一个程序详细研究DataReader  
while(reader.Read())
一个程序详细研究DataReader  
{
一个程序详细研究DataReader   Console.WriteLine(
"Name:{0}\tPhoneNum:{1}\tAddress:{2}",reader.GetString(0),reader.GetString(1),reader.GetString(2));
一个程序详细研究DataReader  }

一个程序详细研究DataReader  showSplit();
一个程序详细研究DataReader  
//无需关闭conn,系统会自动调用这个方法来关闭conn的。
一个程序详细研究DataReader
  reader.Close(); 
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader 
//*演示带参数查询的操作,使用OleDb
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader
 public void hasOledbParamReader()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  SqlCommand cmd; 
一个程序详细研究DataReader  cmd 
= conn.CreateCommand();
一个程序详细研究DataReader  
string sql = "select Fname,Fphone,Faddress from friend where Fid > ?";
一个程序详细研究DataReader  
string oledbConnStr = "Provider=sqloledb;" + connStr;
一个程序详细研究DataReader  OleDbConnection oleConn 
= new OleDbConnection(oledbConnStr);
一个程序详细研究DataReader  OleDbCommand oleCmd 
= new OleDbCommand(sql,oleConn);
一个程序详细研究DataReader  oleCmd.Parameters.Add(
"nothing",15);
一个程序详细研究DataReader  oleConn.Open();
一个程序详细研究DataReader  OleDbDataReader oleReader 
= oleCmd.ExecuteReader();
一个程序详细研究DataReader  
while(oleReader.Read())
一个程序详细研究DataReader  
{
一个程序详细研究DataReader   Console.WriteLine(
"Name:{0}\tPhoneNum:{1}\tAddress:{2}",oleReader.GetString(0),oleReader.GetString(1),oleReader.GetString(2));
一个程序详细研究DataReader  }

一个程序详细研究DataReader  showSplit();
一个程序详细研究DataReader  oleReader.Close();
一个程序详细研究DataReader  oleConn.Close();
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader 
//*演示存储过程的输出参数
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader
 public void outParamShow()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  SqlCommand cmd; 
一个程序详细研究DataReader  cmd 
= conn.CreateCommand();
一个程序详细研究DataReader  cmd.CommandText 
= "GetInfo";
一个程序详细研究DataReader  cmd.CommandType 
= CommandType.StoredProcedure;
一个程序详细研究DataReader  SqlParameter param 
= cmd.Parameters.Add("@Fid",16);
一个程序详细研究DataReader  param 
= cmd.Parameters.Add("@Fname",SqlDbType.VarChar,8);
一个程序详细研究DataReader  param.Direction 
= ParameterDirection.Output;
一个程序详细研究DataReader  param 
= cmd.Parameters.Add("@Fphone",SqlDbType.VarChar,8);
一个程序详细研究DataReader  param.Direction 
= ParameterDirection.Output;
一个程序详细研究DataReader  conn.Open();
一个程序详细研究DataReader  cmd.ExecuteNonQuery();
一个程序详细研究DataReader  
string Fname = cmd.Parameters["@Fname"].Value.ToString();
一个程序详细研究DataReader  
string Fphone = cmd.Parameters["@Fphone"].Value.ToString();
一个程序详细研究DataReader  Console.WriteLine(Fname 
+ "  " + Fphone);
一个程序详细研究DataReader  conn.Close();
一个程序详细研究DataReader  showSplit();
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader 
//*演示读取多个无关记录集
一个程序详细研究DataReader 
//************************************** 
一个程序详细研究DataReader
 public void multiResult()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  SqlCommand cmd; 
一个程序详细研究DataReader  cmd 
= conn.CreateCommand();
一个程序详细研究DataReader  
string sqla = "select Fname from friend";
一个程序详细研究DataReader  
string sqlb = "select Fphone from friend";
一个程序详细研究DataReader  cmd.CommandText 
= sqla + ";" + sqlb;
一个程序详细研究DataReader  conn.Open();
一个程序详细研究DataReader  SqlDataReader reader
= cmd.ExecuteReader();
一个程序详细研究DataReader  
int i = 1;
一个程序详细研究DataReader  
do
一个程序详细研究DataReader  
{
一个程序详细研究DataReader   Console.WriteLine(
"" + i.ToString() + "个记录集内容如下:\n");
一个程序详细研究DataReader   
while(reader.Read())
一个程序详细研究DataReader   
{
一个程序详细研究DataReader    Console.WriteLine(reader[
0].ToString() + "\t");
一个程序详细研究DataReader   }

一个程序详细研究DataReader   i
++;
一个程序详细研究DataReader  }
while(reader.NextResult()); //NextResult()移动到下一个记录集
一个程序详细研究DataReader
  reader.Close();
一个程序详细研究DataReader  conn.Close();
一个程序详细研究DataReader  showSplit();
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader 
//*使用DataReader获得数据库模式信息
一个程序详细研究DataReader 
//************************************** 
一个程序详细研究DataReader
 public void getSchema()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  SqlCommand cmd; 
一个程序详细研究DataReader  cmd 
= conn.CreateCommand();
一个程序详细研究DataReader  
string sql = "select Fid,Fname,Fphone from friend";
一个程序详细研究DataReader     cmd.CommandText 
= sql;
一个程序详细研究DataReader     conn.Open();
一个程序详细研究DataReader     SqlDataReader reader 
= cmd.ExecuteReader();
一个程序详细研究DataReader     DataTable SchemaTable 
= reader.GetSchemaTable();
一个程序详细研究DataReader     
一个程序详细研究DataReader     DataRowCollection SchemaColumns 
= SchemaTable.Rows;
一个程序详细研究DataReader     DataColumnCollection SchemaProps 
= SchemaTable.Columns;   
一个程序详细研究DataReader     
foreach(DataRow SchemaColumn in SchemaColumns)
一个程序详细研究DataReader     
{
一个程序详细研究DataReader      
foreach(DataColumn SchemaColumnProp in SchemaProps)
一个程序详细研究DataReader      
{
一个程序详细研究DataReader       Console.WriteLine(SchemaColumnProp.ColumnName 
+ "=" + SchemaColumn[SchemaColumnProp.ColumnName].ToString());
一个程序详细研究DataReader      }

一个程序详细研究DataReader     }

一个程序详细研究DataReader     reader.Close();
一个程序详细研究DataReader     conn.Close();
一个程序详细研究DataReader     showSplit();
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//**************************************
一个程序详细研究DataReader 
//*从数据库读取二进制数据的代码段
一个程序详细研究DataReader 
//*该代码段只是读取二进制的片断,不是
一个程序详细研究DataReader 
//*整个程序,所以不能执行,你可以把它
一个程序详细研究DataReader 
//*集成到你的WinForm项目里面。
一个程序详细研究DataReader 
//************************************** 
一个程序详细研究DataReader
 public void getBinary()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  
/*
一个程序详细研究DataReader  System.IO.MemoryStream stream = new System.IO.MemoryStream();
一个程序详细研究DataReader  System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream);   
一个程序详细研究DataReader  int BufferSize = 1024;
一个程序详细研究DataReader  byte[] Buffer = new Byte[BufferSize];
一个程序详细研究DataReader  long Offset = 0;
一个程序详细研究DataReader  long BytesRead = 0;
一个程序详细研究DataReader  do
一个程序详细研究DataReader  {
一个程序详细研究DataReader   BytesRead = reader.GetBytes(2,Offset,Buffer,0,BufferSize);
一个程序详细研究DataReader   writer.Writer(Buffer,0,(int)BytesRead);
一个程序详细研究DataReader   writer.Flush();
一个程序详细研究DataReader   Offset += BytesRead;
一个程序详细研究DataReader  }
一个程序详细研究DataReader  while(BytesRead == BufferSize);
一个程序详细研究DataReader  
*/

一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
//添加输出分隔
一个程序详细研究DataReader
 private void showSplit()
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  Console.WriteLine(
"\n********************************************************************\n");
一个程序详细研究DataReader }

一个程序详细研究DataReader 
一个程序详细研究DataReader 
public static void Main(string [] args)
一个程序详细研究DataReader 
{
一个程序详细研究DataReader  SqlReader sqlreader 
= new SqlReader();
一个程序详细研究DataReader  
一个程序详细研究DataReader  sqlreader.basicReader();
一个程序详细研究DataReader  
一个程序详细研究DataReader  sqlreader.hasParamReader();
一个程序详细研究DataReader  
一个程序详细研究DataReader  sqlreader.hasOledbParamReader();
一个程序详细研究DataReader  
一个程序详细研究DataReader  sqlreader.outParamShow();
一个程序详细研究DataReader  
一个程序详细研究DataReader  sqlreader.multiResult();
一个程序详细研究DataReader  
一个程序详细研究DataReader  sqlreader.getSchema();
一个程序详细研究DataReader }
 
一个程序详细研究DataReader}

一个程序详细研究DataReader

你可能感兴趣的:(reader)