团结3D的SQLite本地数据库

时间:2015-04-06 17:02:46

标签: c# android sqlite unity3d

我是团结3D v4.5 pro的新程序员。我正在使用统一3D作为我的增强现实应用程序,我选择了SQLite来创建并轻松处理我的数据库(在android上构建之后)。我在java http://wiki.unity3d.com/index.php/SQLite中找到了2个脚本...我将它转换为c#(因为我用c#编程)并且它帮助了我很多但我无法找到方法"查询&# 34;删除例如firstName或LastName ..我试过这样:

public void DeleteFrom ( String tableName,String itemToDelete, String wPar,String wValue )
{
    string query ;
    query = "DELETE FROM " + tableName + " WHERE " + itemToDelete + wPar + wValue ;        
    dbcmd = dbcon.CreateCommand();
    dbcmd.CommandText = query;
    reader = dbcmd.ExecuteReader();
}

然后我在另一个脚本中调用它"使用数据库"因为它是吼叫的

public void  DeleteRow(string FirstName )
{
    db.DeleteFrom("'"+TableName+"'","FirstName","=","'"+firstName+"'");
}

但我得到的是删除整个Row(firstName lastName)

我不知道你是否理解我的意思:我只想删除firstName并保留在我的数据表中它的lastName所以我可以为lastName分配任何其他新的firstName 。我希望你理解我的观点。请接受我的任何帮助,并提前感谢你。 :)

1 个答案:

答案 0 :(得分:0)

如果我理解正确,听起来你不想做真正的删除。没有删除字段,只有整行。相反,你想要的是一个更新。使用此代码清除行的名字字段:

public void ClearFirstName(string tableName, string firstname )
{
    string query ;
    query = "UPDATE " + tableName + " SET FirstName = '' WHERE FirstName = '" + firstname + "'";        
    dbcmd = dbcon.CreateCommand();
    dbcmd.CommandText = query;
    reader = dbcmd.ExecuteReader();
}

此代码的问题在于,一旦清除了名字,您将无法再次引用它(它将为空)。我建议你添加一个唯一的数字ID字段来引用表格中的每一行。然后,您可以在SQL语句的WHERE子句中使用该ID。