2016-05-02 3 views
1

у меня есть этот код для получения последнего 2 моли данных из базы данных доступа к списку Просмотреть в vb.net, но это дает мне ошибкуПолучить последние 2 моли данные из таблицы базы данных доступа

это мой код :

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 

и это ошибка:

IErrorInfo.GetDescription failed with E_FAIL(0x80004005).

, как я могу это сделать.

+0

Название говорит вы используете Access. Вы добавили тег MySQL (полностью другая база данных). В коде используется OleDb, который предлагает Access, но AFAIK 'DATE_SUB' является функцией MySQL. После того, как вы решите, какая БД это действительно, подумайте, просто передайте дату как параметр – Plutonix

+0

Что такое dt.Rows.Count? Действительно ли DataTable заполняется? – wolfeh

+0

Как правило, я использую его в своем mt-коде, и все работает нормально, если я выберу все данные, которые будут отображаться в виде списка, но если я попытаюсь получить последние 2 мотыля, произойдет сбой кода. –

ответ

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; data source = | datadirectory | \ noorapp.accdb; " это строка подключения rge –

+0

и где ваша ошибка приложения ?. Я думаю, что это проблема с драйвером с доступом, но все же вы не сказали мне, где ошибка –

Смежные вопросы