SQLite.SQLiteException:';近;s";:语法错误';在sqlite中更新字段时
我目前正在从事UWP项目,我使用sqlite数据库。在这个项目中,我想更新sqlite表(classroomteam)中的字段。当我用撇号(')输入值时,会出现错误,显示“sqlite.SQLiteException:'接近“s”:语法错误” 这是我用来将更新的数据保存到表中的代码SQLite.SQLiteException:';近;s";:语法错误';在sqlite中更新字段时,sqlite,uwp,Sqlite,Uwp,我目前正在从事UWP项目,我使用sqlite数据库。在这个项目中,我想更新sqlite表(classroomteam)中的字段。当我用撇号(')输入值时,会出现错误,显示“sqlite.SQLiteException:'接近“s”:语法错误” 这是我用来将更新的数据保存到表中的代码 public static async Task UpdateTeamName(ClassroomTeamItem classroomTeamItem) { IWAppUtils.PrintD
public static async Task UpdateTeamName(ClassroomTeamItem classroomTeamItem)
{
IWAppUtils.PrintDebug("====Start ", CLASS_NAME, "UpdateTeamName()");
ClassroomTeam classroomTeam = new ClassroomTeam()
{
TeamName = classroomTeamItem.TeamName,
Id = classroomTeamItem.Id,
};
String teamName = classroomTeamItem.TeamName;
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(IWSQLite.DATABASE_NAME);
//Task<int> a = conn.UpdateAsync(configInfo);
await conn.ExecuteAsync("UPDATE classroomteam SET TeamName = '" + classroomTeamItem.TeamName + "' WHERE Id = '" + classroomTeam.Id + "'");
await conn.CloseAsync();
IWAppUtils.PrintDebug("====End ", CLASS_NAME, "UpdateTeamName()");
}
公共静态异步任务UpdateTeamName(ClassroomTeamItem ClassroomTeamItem)
{
PrintDebug(“==Start”,类名,“updatetaemname()”;
ClassroomTeam ClassroomTeam=新建ClassroomTeam()
{
TeamName=classroomTeamItem.TeamName,
Id=classroomTeamItem.Id,
};
字符串teamName=classroomTeamItem.teamName;
SQLiteAsyncConnection conn=新的SQLiteAsyncConnection(IWSQLite.DATABASE_NAME);
//任务a=conn.UpdateAsync(configInfo);
等待conn.ExecuteAsync(“更新classroomteam集TeamName=”+classroomTeamItem.TeamName+”,其中Id=“+classroomteam.Id+”);
等待连接CloseAsync();
PrintDebug(“==End”,类名,“UpdateTeamName()”;
}
我试图解决我的问题,我所做的是在查询中应用新字符串[]{classroomTeamItem.TeamName}。然后我没有得到任何错误,但该值存储为System.String[]而不是我在sqlite表中输入的值。我尝试的代码如下所示
public static async Task UpdateTeamName(ClassroomTeamItem classroomTeamItem)
{
IWAppUtils.PrintDebug("====Start ", CLASS_NAME, "UpdateTeamName()");
ClassroomTeam classroomTeam = new ClassroomTeam()
{
TeamName = classroomTeamItem.TeamName,
Id = classroomTeamItem.Id,
};
String teamName = classroomTeamItem.TeamName;
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(IWSQLite.DATABASE_NAME);
//Task<int> a = conn.UpdateAsync(configInfo);
await conn.ExecuteAsync("UPDATE classroomteam SET TeamName = '" + new String[] { classroomTeam.TeamName } + "' WHERE Id = '" + classroomTeam.Id + "'");
await conn.CloseAsync();
IWAppUtils.PrintDebug("====End ", CLASS_NAME, "UpdateTeamName()");
}
公共静态异步任务UpdateTeamName(ClassroomTeamItem ClassroomTeamItem)
{
PrintDebug(“==Start”,类名,“updatetaemname()”;
ClassroomTeam ClassroomTeam=新建ClassroomTeam()
{
TeamName=classroomTeamItem.TeamName,
Id=classroomTeamItem.Id,
};
字符串teamName=classroomTeamItem.teamName;
SQLiteAsyncConnection conn=新的SQLiteAsyncConnection(IWSQLite.DATABASE_NAME);
//任务a=conn.UpdateAsync(configInfo);
等待conn.ExecuteAsync(“UPDATE classroomteam SET TeamName=”+新字符串[]{classroomteam.TeamName}+“,其中Id=”+“+classroomteam.Id+””);
等待连接CloseAsync();
PrintDebug(“==End”,类名,“UpdateTeamName()”;
}
如果有人能帮我解决这个问题,我将不胜感激。关于如何更新字段的sql字符串是:
string SQL_UPDATE = "UPDATE " + TABLE_NAME + " SET Value = ? WHERE Key = ?";
因此,您可以尝试将更新字符串更改为
await db.ExecuteAsync("UPDATE classroomteam SET TeamName = " + classroomTeamItem.TeamName + " WHERE Id = " + classroomTeam.Id);
或者,您可以使用Table方法直接查询特定数据,然后更新字段。例如:
private async void update(ClassroomTeamItem classroomTeamItem)
{
var query = db.Table<ClassroomTeam>().Where(s => s.Id==classroomTeam.Id);
var result = await query.ToListAsync();
foreach (var s in result)
{
s.TeamName = classroomTeamItem.TeamName;
await db.UpdateAsync(s);
}
}
私有异步无效更新(ClassroomTeamItem ClassroomTeamItem)
{
var query=db.Table(),其中(s=>s.Id==classroomTeam.Id);
var result=wait query.ToListAsync();
foreach(结果中的var s)
{
s、 TeamName=classroomTeamItem.TeamName;
等待数据库更新同步;
}
}