Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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在使用SQLite更新布尔值时遇到问题_C#_Sqlite_Xaml_Xamarin_Xamarin.forms - Fatal编程技术网

C# Xamarin在使用SQLite更新布尔值时遇到问题

C# Xamarin在使用SQLite更新布尔值时遇到问题,c#,sqlite,xaml,xamarin,xamarin.forms,C#,Sqlite,Xaml,Xamarin,Xamarin.forms,我正在尝试用Xamarin表单创建一个简单的Notes应用程序。我有一个入口,一个日期,然后是一个开关,以确定笔记是否完成 创建新便笺时,插入数据一切正常。但是当我试图更新一个注释时,Switch元素总是以“false”的形式插入,其他数据与更新一起工作。我不知道可能是什么问题 以下是更新注释的方法: public void UpdateNote(string _name, string _note, string _date, bool _done, int noteId) {

我正在尝试用Xamarin表单创建一个简单的Notes应用程序。我有一个入口,一个日期,然后是一个开关,以确定笔记是否完成

创建新便笺时,插入数据一切正常。但是当我试图更新一个注释时,Switch元素总是以“false”的形式插入,其他数据与更新一起工作。我不知道可能是什么问题

以下是更新注释的方法:

 public void UpdateNote(string _name, string _note, string _date, bool _done, int noteId)
    {
        _sqlconnection.Query<Notes>("UPDATE [Notes] SET Name='" + _name + "', Note='" + _note + "', Date='" + _date + "', Done='" + _done + "' WHERE [ID]='" + noteId + "'");
    }

SQLite将布尔存储为0/1:

var _doneInt = _done : 1 : 0;

public void UpdateNote(字符串名称、字符串注释、字符串日期、bool完成、int注释ID)
{
var _doneInt=_done:1:0;
_sqlconnection.Query(“更新[Notes]集合名称=””+“+”,注释=”+“+”,日期=”+“+”,完成=”+“+”,其中[ID]=“+noteId+”);
}
1.1布尔数据类型 SQLite没有单独的布尔存储类。相反,布尔值存储为整数0(false)和1(true)


参考:SQLite将布尔存储为0/1:

var _doneInt = _done : 1 : 0;

public void UpdateNote(字符串名称、字符串注释、字符串日期、bool完成、int注释ID)
{
var _doneInt=_done:1:0;
_sqlconnection.Query(“更新[Notes]集合名称=””+“+”,注释=”+“+”,日期=”+“+”,完成=”+“+”,其中[ID]=“+noteId+”);
}
1.1布尔数据类型 SQLite没有单独的布尔存储类。相反,布尔值存储为整数0(false)和1(true)


Ref:

SQLite中没有布尔类型,因此必须使用0表示false,1表示true。此外,不应使用
查询
,而应使用执行

_sqlconnection.Execute("UPDATE [Notes] SET Name='" + _name + "', Note='" + _note + "', Date='" + _date + "', Done='" + _done ? 1 : 0 + "' WHERE [ID]='" + noteId + "'");

SQLite没有单独的布尔存储类。相反,布尔值存储为整数0(false)和1(true)


SQLite中没有布尔类型,因此必须使用0表示false,1表示true。此外,不应使用
查询
,而应使用执行

_sqlconnection.Execute("UPDATE [Notes] SET Name='" + _name + "', Note='" + _note + "', Date='" + _date + "', Done='" + _done ? 1 : 0 + "' WHERE [ID]='" + noteId + "'");

SQLite没有单独的布尔存储类。相反,布尔值存储为整数0(false)和1(true)


你能不能不用更新? 已发送对象以进行更新,然后让sqlite.net解决此问题:

public void UpdateNote(Notes _note)
{
    _sqlconnection.Update(_note)
}
如果您查看更新测试调用 这是假设您的
noteId
字段具有
[PrimaryKey]

这似乎对我有用:

型号:

    public class Notes
    {
        [PrimaryKey, AutoIncrement, NotNull] 
        public int Id { get; set; } 
        public string Name { get; set; } 
        public string Note { get; set; } 
        public string Date { get; set; } 
        public bool Done { get; set; } 
    }
试验方法:

    public bool testForNotes(Notes n)
    {
        _sqliteConnection.CreateTable<Notes>();
        _sqliteConnection.Insert (n);
        n.Done = true;
        var i = _sqliteConnection.Update (n);
        return (i > 0);
    }

你能不能不用更新? 已发送对象以进行更新,然后让sqlite.net解决此问题:

public void UpdateNote(Notes _note)
{
    _sqlconnection.Update(_note)
}
如果您查看更新测试调用 这是假设您的
noteId
字段具有
[PrimaryKey]

这似乎对我有用:

型号:

    public class Notes
    {
        [PrimaryKey, AutoIncrement, NotNull] 
        public int Id { get; set; } 
        public string Name { get; set; } 
        public string Note { get; set; } 
        public string Date { get; set; } 
        public bool Done { get; set; } 
    }
试验方法:

    public bool testForNotes(Notes n)
    {
        _sqliteConnection.CreateTable<Notes>();
        _sqliteConnection.Insert (n);
        n.Done = true;
        var i = _sqliteConnection.Update (n);
        return (i > 0);
    }

哦现在更有意义了!谢谢虽然上面的格式似乎不适合我,但我想出来了。这就是我所做的:''int'u doneInt=\u done?1 : 0;谢谢大家的帮助D
code
噢!现在更有意义了!谢谢虽然上面的格式似乎不适合我,但我想出来了。这就是我所做的:''int'u doneInt=\u done?1 : 0;谢谢大家的帮助D
code
我已经试过了,但由于某种原因,它对我不起作用:/I我知道上面的答案解决了你的问题,但是你能发布你的Notes模型吗?由于您无法执行insert或其他sqlite命令,因此必须手动执行sqlite查询确保!这是我的模型:
[PrimaryKey,AutoIncrement,NotNull]public int ID{get;set;}公共字符串名称{get;set;}公共字符串注释{get;set;}公共字符串日期{get;set;}公共bool Done{get;set;}公共注释(){}
对于insert,我使用SQLites insert方法,所以我真的很困惑,为什么is不能与update一起使用。在应用程序输出中使用update时,您是否遇到任何错误?我已经尝试过,但由于某些原因,它对我无效:/我知道上面的答案解决了您的问题,但您是否能够发布您的Notes模型?由于您无法执行insert或其他sqlite命令,因此必须手动执行sqlite查询确保!这是我的模型:
[PrimaryKey,AutoIncrement,NotNull]public int ID{get;set;}公共字符串名称{get;set;}公共字符串注释{get;set;}公共字符串日期{get;set;}公共bool Done{get;set;}公共注释(){}
对于insert,我使用SQLites insert方法,所以我真的不明白为什么is不能与update一起使用。在应用程序输出中使用update时,您是否遇到任何错误?