Click here to Skip to main content
15,883,705 members
Articles / Programming Languages / ASP
Article

dataGridview Using DataReader

Rate me:
Please Sign up or sign in to vote.
3.12/5 (18 votes)
24 Sep 2008CPOL 122.2K   28   11
How to Fill dataGridview Using DataReader in Win App

Introduction

One of the most questions asked to me, how to fill dataGridview Using DataReader, if you note the behavior of DataReader you will note that when you read using DataReader you read row by row so you you make looping to read all records if you want to display all record or any element from record , in other hand dataGridview need to take all data of your records in one package, so the solution is to make centralize store by make class that contains properties and set value for each properties when you read the value of each record and store each object from class that you create in ArrayList so the ArrayList will represent your store.

Using the Code

Step1: Create class that contains properties

C#
public class MyDetails
    {
        private int age;

        public int Age
        {
            get { return age; }
            set { age = value; }
        }
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
           } 
        }

Step 2: create ArrayList to represent your store

C#
ArrayList sequence = new ArrayList();

Step 3: When you retrieve do the following

C#
while (reader.Read())
               {
                   MyDetails m = new MyDetails();
                   m.Id = (int)reader[0];
                   m.Name = reader[1].ToString();
                   m.Age = (int)reader[2];
                   sequence.Add(m);
               }
               dataGridView1.DataSource = sequence;

The Final Code

C#
SqlConnection sqlCon = null;
           try
           {
               sqlCon = new SqlConnection();
               sqlCon.ConnectionString = "Your Connection String";
               SqlCommand cmd = new SqlCommand();
               cmd.Connection = sqlCon;
               cmd.CommandText = "SELECT * FROM StudentInfo";
               sqlCon.Open();
               SqlDataReader reader = cmd.ExecuteReader();
               while (reader.Read())
               {
                   MyDetails m = new MyDetails();
                   m.Id = (int)reader[0];
                   m.Name = reader[1].ToString();
                   m.Age = (int)reader[2];
                   sequence.Add(m);
               }
               dataGridView1.DataSource = sequence;
           }
           finally
           {
               sqlCon.Close();
           }

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer ITeShare
Egypt Egypt
I am interested in Software architecture, Requirements Engineering and coding. I am MCP ,SCJP,MCTs,MCPD, Brainbench.

http://ahmedbohoty.blogspot.com/

Comments and Discussions

 
Questionobject not set to an instance issue plz correct me Pin
jitendra jayswal3-Mar-14 7:34
jitendra jayswal3-Mar-14 7:34 
GeneralMy vote of 1 Pin
Affan Saied13-Oct-13 21:04
Affan Saied13-Oct-13 21:04 
QuestionThanks. Pin
cmcginty19-Jun-13 16:34
cmcginty19-Jun-13 16:34 
Generalthanks Pin
ali.yazdi.136216-Oct-12 9:14
ali.yazdi.136216-Oct-12 9:14 
GeneralMy vote of 1 Pin
m137023-Sep-12 23:09
m137023-Sep-12 23:09 
poor
GeneralMy vote of 5 Pin
Member 796895313-Jun-11 8:53
Member 796895313-Jun-11 8:53 
GeneralExcellent Pin
Honeyboy_205-Sep-10 15:23
Honeyboy_205-Sep-10 15:23 
GeneralMy vote of 5 Pin
Honeyboy_205-Sep-10 15:23
Honeyboy_205-Sep-10 15:23 
GeneralGood But Pin
Vigneshb61-Jun-10 22:53
Vigneshb61-Jun-10 22:53 
Generalgood Pin
Donsw22-Jan-09 6:55
Donsw22-Jan-09 6:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.