亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        從一個程序出發(fā)詳細(xì)研究DataReader

        字號:

        using System;
            using System.Data;
            using System.Data.SqlClient;
            using System.Data.OleDb;
            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}\tName:{1}\tPhoneNum:{2},\tAddress:{3}",reader.GetInt32(0).ToString(),reader.GetString(1),reader[2].ToString(),reader["Faddress"].ToString());
            }
            showSplit();
            reader.Close();
            conn.Close();
             }
             //**************************************
             //*演示帶參數(shù)查詢的操作,使用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();
            //當(dāng)關(guān)閉reader的時候同時關(guān)閉數(shù)據(jù)庫連接
            SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            while(reader.Read())
            {
             Console.WriteLine("Name:{0}\tPhoneNum:{1}\tAddress:{2}",reader.GetString(0),reader.GetString(1),reader.GetString(2));
            }
            showSplit();
            //無需關(guān)閉conn,系統(tǒng)會自動調(diào)用這個方法來關(guān)閉conn的。
            reader.Close();
             }
             //**************************************
             //*演示帶參數(shù)查詢的操作,使用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}\tPhoneNum:{1}\tAddress:{2}",oleReader.GetString(0),oleReader.GetString(1),oleReader.GetString(2));
            }
            showSplit();
            oleReader.Close();
            oleConn.Close();
             }
             //**************************************
             //*演示存儲過程的輸出參數(shù)
             //**************************************
             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();
             }
             //**************************************
             //*演示讀取多個無關(guān)記錄集
             //**************************************
             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() + "個記錄集內(nèi)容如下:\n");
             while(reader.Read())
             {
             Console.WriteLine(reader[0].ToString() + "\t");
             }
             i++;
            }while(reader.NextResult()); //NextResult()移動到下一個記錄集
            reader.Close();
            conn.Close();
            showSplit();
             }
             //**************************************
             //*使用DataReader獲得數(shù)據(jù)庫模式信息
             //**************************************
             public void getSchema()
             {
            SqlCommand cmd;
            cmd = conn.CreateCommand();
            string sql = "select Fid,Fname,Fphone from friend";
              cmd.CommandText = sql;
              conn.Open();
              SqlDataReader reader = cmd.ExecuteReader();
              DataTable SchemaTable = reader.GetSchemaTable();
             
              DataRowCollection SchemaColumns = SchemaTable.Rows;
              DataColumnCollection SchemaProps = SchemaTable.Columns; 
              foreach(DataRow SchemaColumn in SchemaColumns)
              {
            foreach(DataColumn SchemaColumnProp in SchemaProps)
            {
             Console.WriteLine(SchemaColumnProp.ColumnName + "=" + SchemaColumn[SchemaColumnProp.ColumnName].ToString());
            }
              }
              reader.Close();
              conn.Close();
              showSplit();
             }
             //**************************************
             //*從數(shù)據(jù)庫讀取二進(jìn)制數(shù)據(jù)的代碼段
             //*該代碼段只是讀取二進(jìn)制的片斷,不是
             //*整個程序,所以不能執(zhí)行,你可以把它
             //*集成到你的WinForm項目里面。
             //**************************************
             public void getBinary()
             {
            /*
            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream); 
            int BufferSize = 1024;
            byte[] Buffer = new Byte[BufferSize];
            long Offset = 0;
            long BytesRead = 0;
            do
            {
             BytesRead = reader.GetBytes(2,Offset,Buffer,0,BufferSize);
             writer.Writer(Buffer,0,(int)BytesRead);
             writer.Flush();
             Offset += BytesRead;
            }
            while(BytesRead == BufferSize);
            */
             }
             //添加輸出分隔
             private void showSplit()
             {
            Console.WriteLine("\n********************************************************************\n");
             }
             public static void Main(string [] args)
             {
            SqlReader sqlreader = new SqlReader();
            sqlreader.basicReader();
            sqlreader.hasParamReader();
            sqlreader.hasOledbParamReader();
            sqlreader.outParamShow();
            sqlreader.multiResult();
            sqlreader.getSchema();
             }
            }