Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xamarin中使用数据库项来填充ListView?_C#_Android_Sqlite_Xamarin.android - Fatal编程技术网

C# 如何在Xamarin中使用数据库项来填充ListView?

C# 如何在Xamarin中使用数据库项来填充ListView?,c#,android,sqlite,xamarin.android,C#,Android,Sqlite,Xamarin.android,我无法用数据库项填充ListView sqlite中用于get表的函数: public Android.Database.ICursor getFornecedores() { Android.Database.ICursor temp = null; try { sqlQuery = "SELECT * FROM Fornecedor;"; t

我无法用数据库项填充ListView

sqlite中用于get表的函数:

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 });


        }
请帮帮我! 谢谢

List mItems=new List();
var listview=findviewbyd(Resource.Id.listview);
//从数据库获取数据。我正在使用sqlite.cs从数据库中获取数据。
//你可以使用你正在使用的技巧。
使用(var conn=new SQLite.SQLiteConnection(dbPath))
{
尝试
{
var cmd=new SQLite.SQLiteCommand(conn);
cmd.CommandText=“从历史中选择*”;
int i=0;
var r=cmd.ExecuteQuery();
foreach(r中的var项)
{
添加(item.word);
}
}
捕获(例外e)
{
}
}
ArrayAdapter=新的ArrayAdapter(这个,Android.Resource.Layout.SimpleListItem1,mItems);
Adapter=适配器;

您是否收到错误?上面代码的结果是什么?停止并返回此错误:System.NullReferenceException:对象引用未设置为对象的实例06-10 16:30:52.053 E/mono(350):06-10 16:30:52.053 E/mono(350):未处理的异常:06-10 16:30:52.053 E/mono(350):System.NullReferenceException:对象引用未设置为object06-10 16:30:52.053 E/mono(350):位于C:\Users\FelipeLuiz\documents\visual studio 2010\Projects\Demeter\Demeter\DataBaseHandler中的Demeter.DataBaseHandler.getFornecedores()[0x0000f]。cs:206 06-10 16:30:52.053 E/mono(350):位于C:\Users\FelipeLuiz\documents\visual studio 2010\Projects\Demeter\Demeter\Cadstrofornecedor.cs:5806-10 16:30:52.053 E/mono(350):位于Demeter.Cadstrofornecedor.OnCreate(Android.OS.Bundle)[0x000d8]在C:\Users\FelipeLuiz\documents\visualstudio 2010\Projects\Demeter\Demeter\CadastroFornecedor.cs:36 06-10 16:30:52.053 E/mono(350):在Android.App.Activity.n_OnCreate_Landroid_os_Bundle(IntPtr jnienv,IntPtr native_uthis,IntPtr native_usavedinstate)[0x00010]在/Users/builder/data/lanes/monodroid-lion-bs1/95789e18/source/monodroid/src/Mono.Android/platforms/Android-8/src/generated/Android.App.Activity.cs:149006-10 16:30:52.053 E/Mono(350):at(包装器动态方法)对象:553bc2f3-2687-4f19-8429-2e9614a41c6a(intptr,intptr,intptr)06-10 16:30:52.053 I/Mono(350):[错误]致命的未处理异常:System.NullReferenceException:对象引用未设置为对象的实例
        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;