vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Bernd.zi
Datum: 24.01.24 15:39

Hallo!

Wie kann ich bein einem von einem Tool generierten DataTable die letzte Zeile ermitteln und eine Zeile hinzufügen?

Ich habe eine Verbindung mit einer Access-DB hergestellt und dann die Tabelle per Drag and Drop auf die Formview gezogen, dadurch wurden dann
StatistikLotto
- DataSet
- BindingSource
- TableAdapter
- BindingNavigator

und TableAdapterManager generiert.

Hier Zeilen 1 bis 78 von 1945 Zeilen. Falls noch weitere Zeilen zur Beantwortung meiner Frage erforderlich sind, liefere ich sie nach.

'
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.42000
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
'

'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



'''
'''Represents a strongly typed in-memory cache of data.
'''

Global.System.ComponentModel.DesignerCategoryAttribute("code"), _
Global.System.ComponentModel.ToolboxItem(true), _
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema"), _
Global.System.Xml.Serialization.XmlRootAttribute("StatistikLottoDataSet"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")> _
Partial Public Class StatistikLottoDataSet
Inherits Global.System.Data.DataSet

Private tableLottostatistik As LottostatistikDataTable

Private _schemaSerializationMode As Global.System.Data.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema

Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")> _
Public Sub New()
MyBase.New
Me.BeginInit
Me.InitClass
Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler
Me.EndInit
End Sub

Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")> _
Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext)
MyBase.New(info, context, false)
If (Me.IsBinarySerialized(info, context) = true) Then
Me.InitVars(false)
Dim schemaChangedHandler1 As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1
AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1
Return
End If
Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String)
If (Me.DetermineSchemaSerializationMode(info, context) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then
Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet()
ds.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema)))
If (Not (ds.Tables("Lottostatistik")) Is Nothing) Then
MyBase.Tables.Add(New LottostatistikDataTable(ds.Tables("Lottostatistik")))
End If
Me.DataSetName = ds.DataSetName
Me.Prefix = ds.Prefix
Me.Namespace = ds.Namespace
Me.Locale = ds.Locale
Me.CaseSensitive = ds.CaseSensitive
Me.EnforceConstraints = ds.EnforceConstraints
Me.Merge(ds, false, Global.System.Data.MissingSchemaAction.Add)
Me.InitVars
Else
Me.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema)))
End If
Me.GetSerializationData(info, context)
Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
AddHandler Me.Relations.CollectionChanged, schemaChangedHandler
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Bernd.zi
Datum: 25.01.24 12:42

wenn ich das so mache

Zähler = LottostatistikDataTable.Rows.Count

kommt diese Fehlermeldung

System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

"LottostatistikDataTable" war "Nothing".

Wie ich bereits anfangs erwähnte, habe ich "LottostatistikDataTable" nicht selbst angelegt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Manfred X
Datum: 25.01.24 13:07

Hallo!

Die Tabelle zählt Zeilen (Rows) und Spalten ab 0.
Die letzte Zeile ist deshalb gezählt als Rows.Cound-1 (falls Rwows.Count > 0 ist).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Bernd.zi
Datum: 25.01.24 13:34

Ja aber Rows Count funktiniert nicht, weil ich nicht weiß, wie (der/die/das?) DataTable heißt (von einem Tool generiert)

"Zähler = LottostatistikDataTable.Rows.Count" bringt den Fehler

System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." "LottostatistikDataTable" war "Nothing".
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Bernd.zi
Datum: 25.01.24 13:44

Muss ich vielleicht erst noch so eine Zeile einfügen

Dim dataTable As StatistikLottoDataSet.LottostatistikDataTable = New StatistikLottoDataSet.LottostatistikDataTable()

und dann: dataTable.Rows.Count?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Manfred X
Datum: 25.01.24 14:54

Nein!
Ich weiß nicht, was der Designer fürDich erstellt hat.
Schaue in den vom Designer generierten Code, was dort deklariert worden ist.

Folgende Codezeile:
MyBase.Tables.Add(New LottostatistikDataTable(ds.Tables("Lottostatistik")))

Die Tabelle scheint tatsächlich "LottostatistikDataTable" zu heißen.
Die Tabelle ist wohl im Dataset enthalten.

Versuche:
StatistikLottoDataset.Lottostatistikdatatable.rows.count-1
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Bernd.zi
Datum: 25.01.24 17:12

Hallo Manfred! Sieh mal ganz oben am Anfang meiner Problemschilderung. Dort habe ich die ersten 78 Zeilen der
"Partial Public Class StatistikLottoDataSet"
hin kopiert. Der von Dir genannte Code
MyBase.Tables.Add(New LottostatistikDataTable(ds.Tables("Lottostatistik"))) steht in Zeile 60.

Der von Dir vorgeschlagene Versuch (Private Sub Form1_Load) "StatistikLottoDataset.Lottostatistikdatatable.rows.count-1" führt zu diesem Fehler

Class LottoZeitreihe.StatistikLottoDataSet.LottostatistikDataTable
Represents the strongly named DataTable class

BC30469: Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis.

Im Designer, insgesamt 412 Zeilen, kommt der Begriff "DataTable" nicht vor, nur DataSet
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.StatistikLottoDataSet = New LottoZeitreihe.StatistikLottoDataSet()
Me.LottostatistikBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.LottostatistikTableAdapter = New LottoZeitreihe.StatistikLottoDataSetTableAdapters.LottostatistikTableAdapter()
Me.TableAdapterManager = New LottoZeitreihe.StatistikLottoDataSetTableAdapters.TableAdapterManager()
Me.LottostatistikBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: Bernd.zi
Datum: 26.01.24 15:25

Hallo Manfred!

Kann es sein, dass man auf den Inhalt eines generierten DataTable-Objekts nicht zugreifen kann?

Dieser Code beispielsweise

x = LottostatistikDataTable(1)(1)

führt zu diesem Fehler:

System.ArgumentNullException: "Der Wert darf nicht NULL sein.
Parametername: source"

In der Klasse "Partial Public Class StatistikLottoDataSet" ist "Private tableLottostatistik As LottostatistikDataTable"
als Private deklariert.

Vielleicht muss ich mit einer selbst geschriebenen Klasse auf die Datenquelle zugreifen.

Das generierte DataTable-Objekt eine Navigationszeile, wie erster oder letzter Satz, Satz ändern, löschen usw. Darauf müsste ich dann verzichten oder parallel benutzen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rows.Count bei einem von einem Tool generierten DataTable 
Autor: effeff
Datum: 26.01.24 20:11

Die BindingSource hat eine Count-Eigenschaft...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel