Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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# Sqlite抛出NullReferenceException_C#_Android_Sql_Android Asynctask_Sqlite - Fatal编程技术网

C# Sqlite抛出NullReferenceException

C# Sqlite抛出NullReferenceException,c#,android,sql,android-asynctask,sqlite,C#,Android,Sql,Android Asynctask,Sqlite,从这段代码中抛出一个空异常,我不明白为什么会这样。引发NullReferenceException的行是 if (await dbConn.FindAsync<ShoppingList>(x => x.Name == insertedList.Name) != null) if(等待dbConn.FindAsync(x=>x.Name==insertedList.Name)!=null) 以下是整个方法: public async Task<string> Sa

从这段代码中抛出一个空异常,我不明白为什么会这样。引发NullReferenceException的行是

if (await dbConn.FindAsync<ShoppingList>(x => x.Name == insertedList.Name) != null)
if(等待dbConn.FindAsync(x=>x.Name==insertedList.Name)!=null)
以下是整个方法:

public async Task<string> SaveSingleShoppingList(IShoppingList shoppingList)
{
    try 
    {
        var dbConn = new SQLiteAsyncConnection(dbPath);

        ShoppingList insertedList = (ShoppingList)shoppingList;

        await SaveGroceries(shoppingList.Groceries, shoppingList.Name, dbConn);

        if(await dbConn.FindAsync<ShoppingList>(x => x.Name == insertedList.Name) != null)
                await dbConn.UpdateAsync(insertedList);
        else
            await dbConn.InsertAsync(insertedList);

        return "Shopping list Saved!";
    } 
    catch (SQLiteException ex) 
    {
            return ex.Message;
    }
    catch(NullReferenceException nre) 
    {
        return nre.Message;
    }

}
公共异步任务SaveSingleShoppingList(IShoppingList shoppingList)
{
尝试
{
var dbConn=新的SQLiteAsyncConnection(dbPath);
ShoppingList insertedList=(ShoppingList)ShoppingList;
等待保存杂货(shoppingList.Groceries,shoppingList.Name,dbConn);
if(等待dbConn.FindAsync(x=>x.Name==insertedList.Name)!=null)
等待dbConn.updateSync(插入列表);
其他的
等待dbConn.InsertAsync(insertedList);
返回“已保存购物清单!”;
} 
catch(SQLiteException-ex)
{
返回ex.消息;
}
捕获(NullReferenceException nre)
{
返回nre.消息;
}
}
下面是异常消息的完整范围

{System.NullReferenceException:对象引用未设置为 位于的对象的实例 SQLite.TableQuery
1[ShoppingAssistant.ShoppingList].CompileExpr
(System.Linq.Expressions.Expression,
System.Collections.Generic.List
1 queryArgs)[0x00000]in:0

在SQLite.TableQuery
1[ShoppingAssistant.ShoppingList].CompileExpr
(System.Linq.Expressions.Expression,
System.Collections.Generic.List
1 queryArgs)[0x00000]in:0

在 SQLite.TableQuery
1[ShoppingAssistant.ShoppingList].GenerateCommand
(System.String selectionList)[0x00000]位于:0处
SQLite.TableQuery
1[ShoppingAssistant.ShoppingList].GetEnumerator() [0x00000]英寸:0

在 System.Collections.Generic.List
1[ShoppingAssistant.ShoppingList].AddEnumerable
(IEnumerable
1可枚举)[0x00000]输入:0

在 System.Collections.Generic.List
1[ShoppingAssistant.ShoppingList]…ctor
(IEnumerable
1集合)[0x00000]位于:0

在System.Linq.Enumerable.ToList[ShoppingList](IEnumerable`1)中 0中的源)[0x00000]

在 SQLite.TableQuery`1[ShoppingAssistant.ShoppingList].FirstOrDefault() [0x00000]英寸:0

在SQLite.SQLiteConnection.Find[ShoppingList] 中的(System.Linq.Expressions.Expression`1谓词)[0x00000] :0

在 SQLite.SQLiteAsyncConnection+c__AnonStorey7`1[ShoppingAssistant.ShoppingList].m_u0 ()[0x00000]英寸:0

在 System.Threading.Tasks.TaskActionInvoker+FuncInvoke`1[ShoppingAssistant.ShoppingList].Invoke (System.Threading.Tasks.Task所有者,System.Object状态, 0中的System.Threading.Tasks.Task上下文)[0x00000]

位于System.Threading.Tasks.Task.InnerInvoke()[0x00000]中:0位于System.Threading.Tasks.Task.ThreadStart()[0x00000] 年:0

---来自引发异常的上一个位置的堆栈结束跟踪---

在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 [0x00000]英寸:0英寸 System.Runtime.CompilerServices.TaskWaiter`1[ShoppingAssistant.ShoppingList].GetResult ()[0x00000]英寸:0英寸 ShoppingAssistant.SQLiteDataAcces+d_u2d.MoveNext ()[0x0009d]英寸 c:\Users\kaj\Desktop\dbTest\dbTest\SQLiteDataAcces.cs:187 }System.NullReferenceException


您是否考虑过对象引用为
null
的可能性?它的可能重复项已修复,结果是sqlite希望插入到db中的对象不在非空构造函数中实例化,因为我发现字符串名称设置在那里,所以在运行代码时为null,谢谢你的建议。我怎么投票给你们?