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

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

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

<source lang="csharp"> 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();
        }
     }
  }


      </source>


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

<source lang="csharp"> 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();
        }
     }  
  }


      </source>


Result set info: field count and field type

<source lang="csharp"> 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();
        }
     }  
  }


      </source>