954,551 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Help with data grid please

I am trying to show info at the bottom of my data grid I get error saying object reference not set to an instance of an object Here is my code Imports System.data
Imports System.data.OleDb
Imports System.Configuration
Partial Class supplier
Inherits System.Web.UI.Page
Dim ConnString As String = ConfigurationManager.AppSettings("ConnString")
Dim dbPath As String = ConfigurationManager.AppSettings("PathDB")

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
getsuppliers()
dgsuppliers.DataSource = Session("Suppliers")

End If
End Sub


Private Sub getsuppliers()


Dim mySQL As String = "select * from Suppliers "
Dim dbConn As New OleDbConnection(ConnString & Server.MapPath(dbPath))
Dim dbCommand As New OleDbCommand(mySQL, dbConn)
Dim dbAdapter As New OleDbDataAdapter(dbCommand)
Dim dsSuppliers As New DataSet


Try
dbConn.Open()
dbAdapter.Fill(dsSuppliers, "Suppliers")
Catch ex As Exception
lblResults.Text = "Error occurred when retrieving data from Table: " & ex.Message
Finally
dbConn.Close()
End Try
dgsuppliers.DataSource = dsSuppliers
dgsuppliers.DataBind()
End Sub
Private Sub dgsuppliers_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles dgsuppliers.PageIndexChanging
End Sub



Protected Sub dgsuppliers_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgsuppliers.SelectedIndexChanged

Dim mysql As String = "Select * from Suppliers where SupplierID=" & dgsuppliers.SelectedValue & ""
Dim dbConn As New OleDbConnection(ConnString & Server.MapPath(dbPath))
Dim dbCommand As New OleDbCommand(mysql, dbConn)
Dim dbAdapter As New OleDbDataAdapter(dbCommand)
Dim dsSuppliers As New DataSet
Dim supplierRow As DataRow

supplierRow = dsSuppliers.Tables("Suppliers").Rows(0)
supplierRow("CompanyName") = lblName.Text
supplierRow("ContactName") = lblContact.Text
supplierRow("ContactTitle") = lblTitle.Text
supplierRow("Address") = lblAddress.Text
supplierRow("City") = lblCity.Text
supplierRow("Region") = lblRegion.Text
supplierRow("PostalCode") = lblPostal.Text
supplierRow("Country") = lblCountry.Text
supplierRow("Phone") = lblPhone.Text
supplierRow("Fax") = lblFax.Text
supplierRow("Homepage") = lblHomepage.Text
dsSuppliers.Tables.Add("Suppliers").Rows.Add(supplierRow)





dgsuppliers.DataSource = dsSuppliers.Tables





End Sub
End Class

nikki23
Newbie Poster
4 posts since Apr 2007
Reputation Points: 10
Solved Threads: 0
 

i can see two possible problems

to add a new row to a dataset user datarows

supplierRow = dsSuppliers.Tables("Suppliers").NewRow

and when binding to tables you need to declare the table
dgsuppliers.DataSource = dsSuppliers.Tables
("Suppliers")

ptaylor965
Junior Poster
170 posts since Oct 2006
Reputation Points: 16
Solved Threads: 19
 

I am trying to show info at the bottom of my data grid I get error saying object reference not set to an instance of an object Here is my code Imports System.data Imports System.data.OleDb Imports System.Configuration Partial Class supplier Inherits System.Web.UI.Page Dim ConnString As String = ConfigurationManager.AppSettings("ConnString") Dim dbPath As String = ConfigurationManager.AppSettings("PathDB") Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then getsuppliers() dgsuppliers.DataSource = Session("Suppliers") End If End Sub Private Sub getsuppliers() Dim mySQL As String = "select * from Suppliers " Dim dbConn As New OleDbConnection(ConnString & Server.MapPath(dbPath)) Dim dbCommand As New OleDbCommand(mySQL, dbConn) Dim dbAdapter As New OleDbDataAdapter(dbCommand) Dim dsSuppliers As New DataSet Try dbConn.Open() dbAdapter.Fill(dsSuppliers, "Suppliers") Catch ex As Exception lblResults.Text = "Error occurred when retrieving data from Table: " & ex.Message Finally dbConn.Close() End Try dgsuppliers.DataSource = dsSuppliers dgsuppliers.DataBind() End Sub Private Sub dgsuppliers_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles dgsuppliers.PageIndexChanging End Sub Protected Sub dgsuppliers_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgsuppliers.SelectedIndexChanged Dim mysql As String = "Select * from Suppliers where SupplierID=" & dgsuppliers.SelectedValue & "" Dim dbConn As New OleDbConnection(ConnString & Server.MapPath(dbPath)) Dim dbCommand As New OleDbCommand(mysql, dbConn) Dim dbAdapter As New OleDbDataAdapter(dbCommand) Dim dsSuppliers As New DataSet Dim supplierRow As DataRow supplierRow = dsSuppliers.Tables("Suppliers").Rows(0) supplierRow("CompanyName") = lblName.Text supplierRow("ContactName") = lblContact.Text supplierRow("ContactTitle") = lblTitle.Text supplierRow("Address") = lblAddress.Text supplierRow("City") = lblCity.Text supplierRow("Region") = lblRegion.Text supplierRow("PostalCode") = lblPostal.Text supplierRow("Country") = lblCountry.Text supplierRow("Phone") = lblPhone.Text supplierRow("Fax") = lblFax.Text supplierRow("Homepage") = lblHomepage.Text dsSuppliers.Tables.Add("Suppliers").Rows.Add(supplierRow) dgsuppliers.DataSource = dsSuppliers.Tables End Sub End Class


Ehy dear,
Please follow the following steps:
1. add this line in getsuppliers() function in try block
dbconn.dospose()

2. Indgsuppliers_SelectedIndexChanged function you have declared datarow. Your line of code is as follows:

Dim supplierRow As DataRow

change it as follows:

Dim supplierRow As new DataRow

or

Dim supplierRow as DataRow = New DataRow()
Your problem is solved now.

I have checked it. You have not declared the instance of datarow. Thats why it was giving an error.

taralsoni
Newbie Poster
3 posts since Apr 2007
Reputation Points: 10
Solved Threads: 1
 



   














nikki23
Newbie Poster
4 posts since Apr 2007
Reputation Points: 10
Solved Threads: 0
 

hey i have checked it out. Okay do one thing. I am still not getting the kind of problem you have. Better mail me following things:

1. Code
2. Error message copy + paste
3. Error message print screen
4. Purpose of code.

Mail above details on [EMAIL="taralsoni@gmail.com"]taralsoni@gmail.com[/EMAIL]

Thank you.
Regards

taralsoni
Newbie Poster
3 posts since Apr 2007
Reputation Points: 10
Solved Threads: 1
 

do this mydataset.fillschema and then create new row as ds.table("tablename").newrow.

i think this will solve ur problem.

kapil.goyal
Light Poster
47 posts since Jan 2007
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You