Toon posts:

[vb.net] datagrid vullen met dataset

Pagina: 1
Acties:

Verwijderd

Topicstarter
De volgende code: (windows forms, vb.net)

Private Sub FillReader()
Dim myConnection As SqlConnection = New SqlConnection(ConnStr)
Dim myCommand As SqlCommand = New SqlCommand("tsp_get_Accounts", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
Try
Dim myAdapter As New SqlDataAdapter()
myConnection.Open()
myAdapter.SelectCommand = myCommand
myAdapter.Fill(_DataSet)
myConnection.Close()
Catch ex As Exception
RecordError.Record(ex)
End Try
End Sub

Ik krijg steeds een exception bij myAdapter.Fill(_DataSet) dat de value niet null kan zijn... wie weet waarom

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 ziet nergens ook _DataSet gedefinieerd staan... :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
_DataSet is buiten de sub gedefineerd...

Private _DataSet As DataSet

  • Wokkels
  • Registratie: Juli 2000
  • Laatst online: 22-07 06:59

Wokkels

Het lekkerste zoutje

een Private kan je toch niet in een andere sub gebruiken?? of vergis ik me nu heel erg?

probeer _DataSet eens te definieren binnen je sub, of niet als private te definieren.

Permanent wintericon!


Verwijderd

Topicstarter
het is een private in de class.......

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 12 maart 2003 @ 14:26:
_DataSet is buiten de sub gedefineerd...

Private _DataSet As DataSet
En je maakt hem nergens aan?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Naast het definieren van de dataset, moet je hem ook nog alloceren.

https://fgheysels.github.io/


Verwijderd

Topicstarter
ja as new vergeten....

maar zit nu weer met ander probleem

Dim myGrid As New AccountGrid()
DataGrid1.SetDataBinding(mygrid.Dataset.Tables("Accounts"),?????)

effe uitzoeken wat er op de plaats van de ???? moet, maar zal wel lukken denk ik, iig bedankt

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Verwijderd schreef op 12 maart 2003 @ 14:52:
ja as new vergeten....

maar zit nu weer met ander probleem

Dim myGrid As New AccountGrid()
DataGrid1.SetDataBinding(mygrid.Dataset.Tables("Accounts"),?????)

effe uitzoeken wat er op de plaats van de ???? moet, maar zal wel lukken denk ik, iig bedankt


Gewoon ff de help erbij nemen.....

Wat je ook kunt doen is:
code:
1
2
DataGrid1.DataSource = DataSet.Tables["Accounts"];
DataBrid1.DataBind();

https://fgheysels.github.io/


Verwijderd

Topicstarter
DataGrid1.DataSource = DataSet.Tables["Accounts"];
DataBrid1.DataBind();

dat werkt alleen in asp.net webcontrols... in windowsforms is het weer ietjes anders... ben er nog niet achter waarom....waarschijnlijk iets met latebinding ... tijdens runtime vullen ofzo...

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Verwijderd schreef op 12 March 2003 @ 14:56:
DataGrid1.DataSource = DataSet.Tables["Accounts"];
DataBrid1.DataBind();

dat werkt alleen in asp.net webcontrols... in windowsforms is het weer ietjes anders... ben er nog niet achter waarom....waarschijnlijk iets met latebinding ... tijdens runtime vullen ofzo...


In Windowsforms werkt het ook. Zelfs nog eenvoudiger; met 1 regel:

code:
1
DataGrid.DataSource = DataSet.Tables["Accounts"];

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja maar dan moet je hem nog steeds binden... en datagrid.databind() bestaat in windows forms niet...

maar het is gelukt..:

DE KLASSE:

Imports System.Data.SqlClient

Public Class AccountGrid
Private _DataSet As New Dataset()
Private Const ConnStr As String = "server=---;uid=---;pwd=---database=---"

Public Event ThreadComplete(ByVal DataSet As DataSet)

Sub New()
FillDataSet()
RaiseEvent ThreadComplete(_DataSet)
End Sub

ReadOnly Property Dataset() As DataSet
Get
Return _DataSet
End Get
End Property

Private Sub FillDataSet()
Dim myConnection As SqlConnection = New SqlConnection(ConnStr)
Try
Dim myAdapter As New SqlDataAdapter("tsp_get_Accounts", myConnection)
myConnection.Open()
myAdapter.Fill(_DataSet, "Accounts")
myConnection.Close()
Catch ex As Exception
RecordError.Record(ex)
End Try
End Sub
End Class


DE FORM die hem gebruikt.:

....
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myGrid As New AccountGrid()
DataGrid1.SetDataBinding(myGrid.Dataset, "Accounts")

End Sub
....

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
[nohtml]
Verwijderd schreef op 12 March 2003 @ 15:10:
Ja maar dan moet je hem nog steeds binden... en datagrid.databind() bestaat in windows forms niet...
Neen dat moet je niet. De enige regel die je nog nodig hebt om een Dataset aan een DataGrid te binden in WinForms is deze:
code:
1
datagrid1.Datasource = dataset;

Test het maar ff uit...

tip: gebruik code-tags

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja oke, maar dan laat hij niet meteen de inhoud van de tabel zien.. moet je er via de datagrid eerst naar toe navigeren .. maar ze werken idd allebei..
Pagina: 1