数据读取器---获取数据的信息

实例:使用数据读取器获取结果集的信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace ResultSetInfo
{
    class Program
    {
        static void Main(string[] args)
        {
            string connString = @"Data Source=SNH;Initial Catalog=Northwind;Integrated Security=True";
            string sql = @"select contactname,contacttitle from customers where contactname like 'M%'";
            SqlConnection conn = new SqlConnection(connString);
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataReader rdr = cmd.ExecuteReader();
                
                //get column names
                Console.WriteLine("Column Name:\t{0} {1}", rdr.GetName(0).PadRight(25), rdr.GetName(1));

                //get column data types
                Console.WriteLine("Data Type:\t{0} {1}", rdr.GetDataTypeName(0).PadRight(25), rdr.GetDataTypeName(1));

                Console.WriteLine();
                while (rdr.Read())
                { 
                    //get column values for all rows
                    Console.WriteLine("\t\t{0} {1}", rdr.GetString(0).ToString().PadRight(25), rdr.GetString(1));
                }

                //get number of columns
                Console.WriteLine();
                Console.WriteLine("Number of columns in a row: {0}", rdr.FieldCount);
             
                // get info about each column
                Console.WriteLine("'{0} is as index {1} " + "and its type is: {2}", rdr.GetName(0), rdr.GetOrdinal("contactname"), rdr.GetFieldType(0));
                Console.WriteLine("'{0}' is at index {1} " + "and its type is: {2}", rdr.GetName(1), rdr.GetOrdinal("contacttitle"), rdr.GetFieldType(1));
                rdr.Close();
            }
            catch (SqlException e)
            {
                Console.WriteLine("Error: " + e.ToString());
            }
            finally 
            {
                conn.Close();
            }
            Console.ReadKey();
        }
    }
}

示例说明:

GetName方法根据列的索引获取列的名称。rdr.GetName(1)

GetDataTypeName方法返回数据库中的一列的数据类型。rdr.GetDataTypeName(0)

FieldCount属性包含结果集中的列数。在不知道列的名称或其他属性的情况下遍历列时,十分有用。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值