Csharp/C Sharp/Database ADO.net/Result Set

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Get result data from SqlDataReader by type: decimal, string, int and boolean

using System;
using System.Data;
using System.Data.SqlClient;
   class TypedMethods
   {
      static void Main(string[] args)
      {
         string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
         string sql = @"select * from employee";
         SqlConnection conn = new SqlConnection(connString);
         try {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            while(reader.Read()) {
               Console.WriteLine( "{0}\t {1}\t\t {2}\t {3}", 
                  // nvarchar
                  reader.GetString(0).PadRight(30),
                  // money
                  reader.GetDecimal(1),
                  // smallint
                  reader.GetInt16(2),
                  // bit
                  reader.GetBoolean(3));
            }
            reader.Close();
         } catch(Exception e) {
            Console.WriteLine("Error Occurred: " + e);
         } finally {
            conn.Close();
         }
      }
   }


Result set info: column Name, column Type, type name

using System;
using System.Data;
using System.Data.SqlClient;
   class ResultSetInfo{
      static void Main(string[] args) {
         string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
         string sql = @"select FirstName, LastName from Employee";
         SqlConnection conn = new SqlConnection(connString);
         try {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            Console.WriteLine("Column Name:\t{0} {1}", reader.GetName(0).PadRight(25),reader.GetName(1));
            Console.WriteLine("Data Type:\t{0} {1}", reader.GetDataTypeName(0).PadRight(25), reader.GetDataTypeName(1));
            while(reader.Read()) {
               Console.WriteLine("\t\t{0} {1}", 
                  reader.GetString(0).ToString().PadRight(25),
                  reader.GetString(1));
            }
            reader.Close();
         }
         catch(Exception e)
         {
            Console.WriteLine("Error Occurred: " + e);
         }
         finally
         {
            conn.Close();
         }
      }  
   }


Result set info: field count and field type

using System;
using System.Data;
using System.Data.SqlClient;
   class ResultSetInfo{
      static void Main(string[] args) {
         string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
         string sql = @"select FirstName, LastName from Employee";
         SqlConnection conn = new SqlConnection(connString);
         try {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            Console.WriteLine("Column Name:\t{0} {1}", reader.GetName(0).PadRight(25),reader.GetName(1));
            Console.WriteLine("Data Type:\t{0} {1}", reader.GetDataTypeName(0).PadRight(25), reader.GetDataTypeName(1));
            Console.WriteLine("Number of columns in a row: {0}", reader.FieldCount);
            Console.WriteLine(""{0}" is at index {1} and its type is: {2}", 
               reader.GetName(0),reader.GetOrdinal("FirstName"),reader.GetFieldType(0));
            Console.WriteLine(""{0}" is at index {1} and its type is: {2}", 
               reader.GetName(1), reader.GetOrdinal("LastName"),reader.GetFieldType(1));
            reader.Close();
         }
         catch(Exception e)
         {
            Console.WriteLine("Error Occurred: " + e);
         }
         finally
         {
            conn.Close();
         }
      }  
   }