| |
VB.NET - Ein- und UmsteigerRows.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 | |
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. | |
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). | |
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". | |
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? | |
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 | |
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) | |
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. | |
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 | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|