Click here to Skip to main content
12,819,538 members (34,403 online)
Click here to Skip to main content
Add your own
alternative version


20 bookmarked
Posted 15 Dec 2004

Working with DataGrid in VC++.NET

, 15 Dec 2004
Rate this:
Please Sign up or sign in to vote.
This article demonstrates the DataGrid , ADO.NET components, and storing data into the database and retrieving from the same.


This is my small contribution from what I learnt in my walk towards VC++ .NET. It's a really simple and very often used scenario: working with DataGrid. Here, I developed a small application which creates database and stores the data (image), and also retrieves data from the database and displays it in the DataGrid.

Code Explanation


  • MS Visual Studio .NET 2003
  • Windows XP
  • SQL Server 2000

I used SQL Server for database operations. The application shows how the values (image) are stored in the database and the grid is updated when changes are made in the database. This is the snapshot of my application.

Sample screenshot

Controls used

  • Buttons: Create Database, Select Image, Save to Database
  • PictureBox: PictureBox1
  • DataGrid: Datagrid1

Create the database

When you click the button 'Create Database', the table called Picture would be created in the SQL Server NorthWind database. If it is already present, it would be deleted and created again.

String* strSQL = 
        S"IF EXISTS (SELECT * FROM northwind.dbo.sysobjects WHERE NAME " 
        "= 'Picture' AND TYPE = 'u')\r\nBEGIN\r\nDROP " 
        "TABLE northwind.dbo.picture\r\nEND\r\nCREATE TABLE " 
        "Picture (PictureID Int IDENTITY(1,1) NOT NULL,[FileName] " 
        "Varchar(255) NOT NULL,Picture Image NOT NULL," 
    SqlConnection* conCreate = new SqlConnection(strconString);
    SqlCommand* sqlCmd = new SqlCommand(strSQL,conCreate);

      MessageBox::Show(S"Table is Created Successfully",S"Table   

catch(System::Exception* ee)

Place the code to create the table and declare the appropriate variables in the program.

Select Image

The open file dialog is used to select the particular image. When the Select Image button is clicked, the open file dialog would be displayed to select the image (BMP/GIF/JPG).

openFileDialog1->InitialDirectory = S"C:\\";
openFileDialog1->Filter = S"All
openFileDialog1->FilterIndex = 2;

if(openFileDialog1->ShowDialog()== DialogResult::OK)
 pictureBox1->Image = Image::FromFile(openFileDialog1->FileName);
 pictureBox1->SizeMode = PictureBoxSizeMode::CenterImage;
 pictureBox1->BorderStyle = BorderStyle::Fixed3D;
 lblImage_Path->Text = openFileDialog1->FileName;


Place the code in the Select Image button Click event.

Save to Database

When the Save to Database button is clicked, the selected image would be stored into the Picture table by means of converting it into a stream of bytes. After storing into database, refresh the DataGrid.

//To Convert the Image to Bytes
MemoryStream* mst = new MemoryStream();
Byte BinaryImg[] = mst->GetBuffer();

Then, insert the image name to the database.

//Insert into Table
conNwnd = new SqlConnection(strconString);
String* strSQL = S"INSERT INTO Picture" 
                  " (Filename, Picture)VALUES (@Filename, @Picture)";

//To Fill the DataGrid

sqlcmd = new SqlCommand(strSQL,conNwnd);
sqlcmd->Parameters->Add(new SqlParameter(S"@Filename", 
        SqlDbType::NVarChar,50))->Value = strImgFile[0];
sqlcmd->Parameters->Add(new SqlParameter(S"@Picture", 
        SqlDbType::Image))->Value = BinaryImg;

MessageBox::Show(String::Concat(strImgFile[0],S" saved to Database."), 
       S"Image Status",MessageBoxButtons::OK,MessageBoxIcon::Information);

Here, RefreshTable function is used to refresh the grid.

conNwnd = new SqlConnection(strconString);
SqlDataAdapter* sqlDA = new SqlDataAdapter(S"Select PictureID,Filename," 
                        "Picture FROM Picture",conNwnd);
dataGrid1->DataSource = TableData->Tables->Item[INPUT_TABLE];

On the form Load call, this RefreshTable function displays the values from the database.


Using this small application, a beginner can understand the DataGrid and about database connections, and how to store and retrieve values from the database using VC++ .NET. Your comments are always welcome which helps me to sharp my knowledge more.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Arul Nayagam C A
Web Developer
India India
Finished MCA and Working as a Software Engineer for HCL,Chennai.Knowledge on VB,C#.NET,ASP.NET and VC++.NET.

You may also be interested in...

Comments and Discussions

Questionregarding datagrid Pin
ebfru23-Apr-08 21:59
memberebfru23-Apr-08 21:59 
GeneralSelected image should be editable Pin
minad_78621-Feb-07 3:46
memberminad_78621-Feb-07 3:46 
GeneralFinding the column names thatmake up an Index Pin
AlexEvans12-Oct-06 22:43
memberAlexEvans12-Oct-06 22:43 
Questionhow to use in mfc? Pin
sophiaia14-Apr-06 15:47
membersophiaia14-Apr-06 15:47 
QuestionNEED HELP PLZZ!! Pin
hbjs2-Feb-06 15:42
memberhbjs2-Feb-06 15:42 
QuestionDatagrid formatting?? Pin
salaikumar9-Oct-05 21:49
membersalaikumar9-Oct-05 21:49 
QuestionCode? Pin
young120-Jan-05 8:32
memberyoung120-Jan-05 8:32 
AnswerRe: Code? Pin
Arul Nayagam C A11-Feb-05 2:08
memberArul Nayagam C A11-Feb-05 2:08 
GeneralRe: Code? Pin
Member 47502137-Jan-08 11:23
memberMember 47502137-Jan-08 11:23 
GeneralMemoryStream Pin
cucubau26-Dec-04 21:24
membercucubau26-Dec-04 21:24 
GeneralRe: MemoryStream Pin
Arul Nayagam C A26-Dec-04 22:50
memberArul Nayagam C A26-Dec-04 22:50 
QuestionDatagrid article? Pin
javanic23-Dec-04 4:29
memberjavanic23-Dec-04 4:29 
AnswerRe: Datagrid article? Pin
Arul Nayagam C A26-Dec-04 18:13
memberArul Nayagam C A26-Dec-04 18:13 
GeneralSource code Pin
Amul Baby23-Feb-06 19:52
memberAmul Baby23-Feb-06 19:52 

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.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170308.1 | Last Updated 16 Dec 2004
Article Copyright 2004 by Arul Nayagam C A
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid