Datagridview fails on form load evemt

Posted on 2009-07-03
Medium Priority
Last Modified: 2013-11-08
Hi All

I am having a bit of a weird issue trying to create a form that displays only a datagridview. I am using VB,net 2009

I created a sub routine to run when the forms new function is called, I pass this function thre parameters which are then fed into a stored procedure which will in turn populate the dataset and i hope that datagrid eventually.

The problem is that when I try and load the data from the dataset into the data grid i get an error saying that the object refrence is not set to an instance of the object. I am confused as the code for the datagridview is identical (as far as i can see) to another sub routing which works perfectly.

Any ideas on this one?

incidentally I get the same error when i put the dataset code in the form load event and if i put the binding code in the same routine as the dataset load sub

thanks in advance
Form opening code:
    Private Sub EURb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EURb.Click
        Dim d1 As Date = DatePicker.Value.AddMonths(-1).AddDays(-DatePicker.Value.Day)
            If Not IsNothing(f3) Then
                If Not f3.IsDisposed Then
                    f3.WindowState = FormWindowState.Normal  ' Optional
                    f3.BringToFront()  '  Optional
                     f3 = New HistoryDisplay("EUR", "CASH", d1)
                End If
                f3 = New HistoryDisplay("EUR", "CASH", d1)
             End If
        Catch ex As Exception
            MsgBox(ex.Message, , "Load Report")
        End Try
    End Sub
The new() subroutine:
Sub New(ByVal CCY As String, ByVal Table As String, ByVal Date2 As Date)
        'CCY1 = CCY
        'Table1 = Table
        'Date1 = Date2
        Dim CONNSTR As String = "integrated security=SSPI;data source='CFPD8-CA\SQLEXPRESS';initial catalog=CFltd"
        Dim cn As New SqlConnection(ConnStr)
         datrades = New SqlDataAdapter("CashLadderGetFullDetails", cn)
        datrades.SelectCommand.CommandType = CommandType.StoredProcedure
        datrades.SelectCommand.Parameters.AddWithValue("@Date", Date2.Date)
        datrades.SelectCommand.Parameters.AddWithValue("@CCY", CCY)
            datrades.Fill(dsTrades, "Trades")
        Catch ex As Exception
            MsgBox(ex.Message, , "Loading Data")
        End Try
    End Sub
   Private Sub HistoryDisplay_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
         DataGrid1.DataSource = dsTrades
        DataGrid1.DataMember = "Trades"
    End Sub

Open in new window

Question by:ChrisAllison
LVL 23

Accepted Solution

Jens Fiederer earned 501 total points
ID: 24812751
I suspect at the time the form's constructor is called, its controls have not been created yet and can't be populated.

You SHOULD be able to bind when the form is loaded.

LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 498 total points
ID: 24815364
Did you set dsTrades to a new object before you passed it to Fill() (either in the constructor or statically)?
// Statically
Dim dsTrades As New DataSet()  // Initialized
Sub New(ByVal CCY As String, ByVal Table As String, ByVal Date2 As Date)
// Constructor
Dim dsTrades As DataSet()  // declared-only
Sub New(ByVal CCY As String, ByVal Table As String, ByVal Date2 As Date)
    dsTrades = new DataSet()

Open in new window

LVL 83

Assisted Solution

CodeCruiser earned 501 total points
ID: 24821159
Place your code inside Load or Shown event of the form instead of new. Your code inside new will be executed before ALL other code in the form hence there are no controls created yet and i think at that the stage the form itself is not created yet.

Author Closing Comment

ID: 31599520
thanks for the comments chaps, I got around the problem by placing the code in the load event. My issue with that origianlly was passing data to the stored procedure to dictate what data I load.

the method i attempted to try did work in another 2008 project, which has puzzled me, at least my workaround works!
thanks for the help guys

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
How to fix display issue, screen flickering issue when I plug in power cord to the machine. Before I start explaining the solution lets check out once the issue how it looks like after I connect the power cord. most of you also have faced this…
In the video, one can understand the process of resizing images in single or bulk. Kernel Bulk Image Resizer is an easy to use tool for resizing large number of images. One can add and resize multiple images with this tool in single go. The video sh…

600 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question