how to read column values as C# types using the Get* methods : SqlDataReader « Database ADO.net « C# / C Sharp






how to read column values as C# types using the Get* methods

 

using System;
using System.Data;
using System.Data.SqlClient;

class StronglyTypedColumnValues {
    public static void Main() {
        SqlConnection mySqlConnection = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=sa");
        SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
        mySqlCommand.CommandText =
          "SELECT TOP 5 ProductID, ProductName, UnitPrice, " +
          "UnitsInStock, Discontinued " +
          "FROM Products " +
          "ORDER BY ProductID";

        mySqlConnection.Open();

        SqlDataReader productsSqlDataReader =
          mySqlCommand.ExecuteReader();

        int productIDColPos = productsSqlDataReader.GetOrdinal("ProductID");
        int productNameColPos = productsSqlDataReader.GetOrdinal("ProductName");
        int unitPriceColPos = productsSqlDataReader.GetOrdinal("UnitPrice");
        int unitsInStockColPos = productsSqlDataReader.GetOrdinal("UnitsInStock");
        int discontinuedColPos = productsSqlDataReader.GetOrdinal("Discontinued");

        Console.WriteLine("ProductID .NET type = " + productsSqlDataReader.GetFieldType(productIDColPos));
        Console.WriteLine("ProductName .NET type = " + productsSqlDataReader.GetFieldType(productNameColPos));
        Console.WriteLine("UnitPrice .NET type = " + productsSqlDataReader.GetFieldType(unitPriceColPos));
        Console.WriteLine("UnitsInStock .NET type = " + productsSqlDataReader.GetFieldType(unitsInStockColPos));
        Console.WriteLine("Discontinued .NET type = " + productsSqlDataReader.GetFieldType(discontinuedColPos));
        Console.WriteLine("ProductID database type = " + productsSqlDataReader.GetDataTypeName(productIDColPos));
        Console.WriteLine("ProductName database type = " + productsSqlDataReader.GetDataTypeName(productNameColPos));
        Console.WriteLine("UnitPrice database type = " + productsSqlDataReader.GetDataTypeName(unitPriceColPos));
        Console.WriteLine("UnitsInStock database type = " + productsSqlDataReader.GetDataTypeName(unitsInStockColPos));
        Console.WriteLine("Discontinued database type = " + productsSqlDataReader.GetDataTypeName(discontinuedColPos));

        while (productsSqlDataReader.Read()) {
            int productID = productsSqlDataReader.GetInt32(productIDColPos);
            Console.WriteLine("productID = " + productID);

            string productName = productsSqlDataReader.GetString(productNameColPos);
            Console.WriteLine("productName = " + productName);

            decimal unitPrice = productsSqlDataReader.GetDecimal(unitPriceColPos);
            Console.WriteLine("unitPrice = " + unitPrice);

            short unitsInStock = productsSqlDataReader.GetInt16(unitsInStockColPos);
            Console.WriteLine("unitsInStock = " + unitsInStock);

            bool discontinued = productsSqlDataReader.GetBoolean(discontinuedColPos);
            Console.WriteLine("discontinued = " + discontinued);
        }
        productsSqlDataReader.Close();
        mySqlConnection.Close();
    }
}

 








Related examples in the same category

1.Execute multiple SELECT statements using a SqlCommand object and read the results using a SqlDataReader object
2.Get column index from SqlDataReader
3.use the GetOrdinal() from DataReader to get the numeric positions of a column
4.read column values as Sql* types using the GetSql* methods
5.Read data from SqlDataReader
6.Reference data in SqlDataReader by column name
7.Use A Data Reader
8.Use While loop to read query result data from SqlDataReader
9.Deal with Multiple Results
10.SqlDataReader Ordinal Indexer