2017-07-12 17 views
0

最近、vb.netの構造体を使用していました。だから私は情報のテーブルを格納するためにそれらを利用しようとしていましたが、テーブルがnullであるというエラーが表示されます。私はこれが新しいインスタンスとして宣言されていないが、構造が "新規"を受け入れないためだと仮定します。VB.Netでの構造体のデータ型との使用

アイデア?

私が使っているもの;

それは、この行にクラッシュ: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

構造体はnullでもかまいません。構造体は常にデフォルト値を持ち、すべてのフィールドが初期化されます(クラス型のフィールドを除きます)。 )。それはエラーの原因となっている何か他のものです。どのラインでエラーがスローされますか? –

+2

データテーブルはNothingです。その構造の要点は不思議ですが、コレクションやデータセットがより適切でしょう。また、SQL用の連結文字列は決して使用しないでください。SQLパラメータ – Plutonix

+0

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

答えて

0

ビジュアルヴィンセントは のDataTableがnullだった、正しかったです。

このライン

dt.AutoMatic = New DataTable 

そして今、正常に動作を追加しました。

すべての助けてくれてありがとう! 将来のもののためにSQLのパラメータを調べる

関連する問題