2016-05-02 7 views
1

ich habe diesen Code für die letzte 2 Motte von Daten von Bankzugriff Datenansicht in vb.net zu verzeichnen, aber ichHolen Sie sich die letzten 2 Motten Daten aus Access-Datenbank-Tabelle

dies ist mein Code-Fehler geben :

Public Sub showlistview() 
     Dim dt As New DataTable 
     Dim ds As New DataSet 
    ds.Tables.Add(dt) 
    Dim da As New OleDbDataAdapter("SELECT * FROM pay_pretalk _ 
            WHERE sdate > DATE_SUB(now(), INTERVAL 2 MONTH)", con) 
    da.Fill(dt) 
     Dim myrow As DataRow 
     For Each myrow In dt.Rows 
      ListView1.Items.Add(myrow.Item(2)) 
      ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(3)) 
      ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(4)) 
      ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(5)) 
     ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(6)) 
     ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(7)) 
     Next 
End Sub 

und das ist der Fehler:

IErrorInfo.GetDescription failed with E_FAIL(0x80004005).

, wie ich dies tun kann.

+0

Der Titel sagt, Sie Access verwenden. Sie haben ein MySQL-Tag hinzugefügt (eine völlig andere Datenbank). Der Code verwendet OleDb, das Access vorschlägt, aber AFAIK 'DATE_SUB' ist eine MySQL-Funktion. Sobald Sie entscheiden, welche DB es wirklich ist, überlegen Sie, nur das Datum als Parameter übergeben – Plutonix

+0

Was ist dt.Rows.Count? Wird DataTable tatsächlich gefüllt? – wolfeh

+0

Normalerweise benutze ich meinen mt-Code und alles funktioniert gut, wenn ich alle Daten wähle wird es in der Listenansicht angezeigt, aber wenn ich versuche, die letzten 2 Motten zu bekommen, stürzt der Code ab. –

Antwort

0
  dim ds as new DataSet(); 
      dim adapter as new OleDataDataAdapter("SELECT * FROM pay_pretalk            

      WHERE sdate > DateAdd("m", -2, Date())", con); 
      adapter.Fill(ds); 
      dt = ds.Tables[0]; 

.....

+0

con.ConnectionString = "provider = microsoft.ace.oledb.12.0; datenquelle = | datenverzeichnis | \ nooorapp.accdb; " das ist rge verbindungszeichenfolge –

+0

und wo ist ihre anwendung fehler ?. Ich denke, es ist ein treiberproblem mit zugang. aber sie haben mir noch nicht gesagt, wo der fehler ist –

Verwandte Themen