2017-07-12 4 views
0

Ich kam vor kurzem über Strukturen in vb.net. Also habe ich versucht, sie zum Speichern von Informationstabellen zu verwenden, aber ich bekomme eine Fehlermeldung, dass die Tabelle null ist. Ich nehme an, dies ist, weil es nicht als eine neue Instanz deklariert wird, aber Strukturen akzeptieren nicht "Neu".Verwenden von Strukturen in VB.Net mit Datatables

Irgendwelche Ideen?

Heres was ich verwende;

es auf dieser Linie abstürzt: ds.Tables.Add (dt.AutoMatic)

Public Structure Reminder 
    Public AutoMatic As DataTable 
    Public Manual As DataTable 
End Structure 
Public Function ReturnReminders() As Reminder 
    Dim DateRangeA As Date = Date.Today 
    Dim DateRangeB As Date = Date.Today 
    DateRangeA = DateRangeA.AddMonths(-1) 
    DateRangeA = DateRangeA.ToString("MM/dd/yyyy") : DateRangeB = DateRangeB.ToString("MM/dd/yyyy") 
    Dim Sql As String = "SELECT reminder_id, Subject_Line, Body, LifeTime FROM ucert_reminder_tbl WHERE Date_Remind BETWEEN #" & DateRangeA & "# AND #" & DateRangeB & "# AND Hide = 0 AND AutoRem = 1" ' reminder_id = " & Id 
    Dim Items As New ArrayList 
    Dim ds As New DataSet 
    Dim dt As New Reminder 

    ConOpen() 
    ds.Tables.Add(dt.AutoMatic) 
    Dim da As New OleDbDataAdapter(Sql, _myConnection) 
    da.Fill(dt.AutoMatic) 
    ConClose() 
    Return dt 
+0

Strukturen können nicht null sein, sie haben immer einen Standardwert mit allen ihren Feldern zu etwas initialisiert (außer für Felder eines Klassentyps, die das einzige Ding sein kann, das _inside_ it sein kann). Es ist etwas anderes, das den Fehler verursacht. Auf welche Zeile wird der Fehler geworfen? –

+2

Die Datentabelle ist nichts. Obwohl der Punkt dieser Struktur mystifizierend ist - eine Sammlung oder ein DataSet wäre geeigneter. Auch niemals concat Zeichenfolgen für SQL verwenden SQL-Parameter – Plutonix

+0

ds.Tables.Add (dt.AutoMatic) Nach ConOpen() –

Antwort

0

Visuelle Vincent richtig war, Datentabelle war null.

Added diese Linie

dt.AutoMatic = New DataTable 

Und jetzt gut funktioniert.

Danke für die Hilfe! Defo Blick in Sql Parameter für zukünftige Sachen