2013-06-07 2 views
4

Я не могу заполнить ListView элементами базы данных.Как просмотреть список ListView с элементами базы данных в Xamarin?

Функция в SQLite для ПОЛУЧИТЬ таблицы:

public Android.Database.ICursor getFornecedores() 
     { 
      Android.Database.ICursor temp = null; 
      try 
      { 
       sqlQuery = "SELECT * FROM Fornecedor;"; 
       temp = sqlTemp.RawQuery(sqlQuery, null); 
       if (!(temp != null)) 
        Console.WriteLine("Deu pau"); 
      } 
      catch(SQLiteException e) 
      { 
       Console.WriteLine("Erro = " + e.Message); 
      } 
      return temp; 
     } 

Функция я пытаюсь заполнить ListView:

public void loadListView() 
     { 
      Android.Database.ICursor fornecedores; 
      DataBaseHandler db = new DataBaseHandler(); 
      fornecedores = db.getFornecedores(); 
      SimpleCursorAdapter adapter; 

      cadastroListView.Adapter = new SimpleCursorAdapter(this, Android.Resource.Layout.SimpleDropDownItem1Line, fornecedores, 
             new string[] { "nome" }, new int[] { Android.Resource.Id.Text1 }); 


     } 

Помогите мне пожалуйста! Спасибо!

+2

Вы получаете сообщение об ошибке? Каков результат приведенного выше кода? – kc7zax

+0

Остановить и вернуть эту ошибку: System.NullReferenceException: Ссылка на объект не установлена ​​в экземпляр объекта 06-10 16: 30: 52.053 E/mono (350): 06-10 16: 30: 52.053 E/mono (350): Unhandled Исключение: 06-10 16: 30: 52.053 E/mono (350): System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта – user2237533

+0

06-10 16: 30: 52.053 E/mono (350): в Demeter.DataBaseHandler.getFornecedores() [0x0000f] в C: \ Users \ FelipeLuiz \ documents \ visual studio 2010 \ Projects \ Demeter \ Demeter \ DataBaseHandler.cs: 206 06-10 16: 30: 52.053 E/mono (350): в Demeter.CadastroFornecedor.loadListView() [0x00007] в C: \ Users \ FelipeLuiz \ documents \ visual studio 2010 \ Projects \ Demeter \ Demeter \ CadastroFornecedor.cs: 58 – user2237533

ответ

0
 List<string> mItems = new List<string>(); 
     var listview = FindViewById<ListView>(Resource.Id.listview); 

//fetching data from database. I am using sqlite.cs to fetch data from database. 
//You can use your technique which you are using. 

     using (var conn = new SQLite.SQLiteConnection(dbPath)) 
     { 
      try 
      { 
       var cmd = new SQLite.SQLiteCommand(conn); 
       cmd.CommandText = "select * from history"; 
       int i = 0; 
       var r = cmd.ExecuteQuery<hist>(); 
       foreach (var item in r) 
       { 
        mItems.Add(item.word); 
       } 

      } 
      catch (Exception e) 
      { 

      } 
     } 

     ArrayAdapter<string> adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, mItems); 

     listview.Adapter = adapter; 
Смежные вопросы