2017-05-08 93 views
0

我在SQLite中有一个表,我想更新一些列。这里是我的查询:Android SQLite更新查询错误

String UPDATE_INFORMATION = "UPDATE " + TABLE_USER + " SET " 
      + KEY_ADDRESS_OF_LIVING + " = " + addressOfLiving + ", " 
      + KEY_PHONE + " = " + phoneNumber + ", " 
      + KEY_IDNP + " = " + IDNP 
      + " WHERE " + KEY_ID + " = 1"; 

在调试值:

UPDATE user SET address = Efdsdfd, phone = 3797333, idnp = 2006002050245 WHERE id = 1 

和错误信息运行此查询时,我得到的是:

android.database.sqlite.SQLiteException: no such column: Efdsdfd 

为什么它需要的“Efdsdfd “作为列名?

+0

试试这个UPDATE用户SET'地址'='Efdsdfd','phone'='3797333','idnp'='2006002050245'WHERE'id'= 1 –

+1

@JineshFrancis ......你为什么要引用* * coulmn名称** ?????? –

+0

无论如何,您可以使用参数化的SQL命令或查询,而忘记引用。 –

回答

1
UPDATE user SET address = Efdsdfd, phone = 3797333, idnp = 2006002050245 WHERE id = 1 

上述查询无效,因为地址是VARCHAR或TEXT类型。您必须将TEXT值放在单引号内。

更新查询字符串:

String UPDATE_INFORMATION = "UPDATE " + TABLE_USER + " SET " 
     + KEY_ADDRESS_OF_LIVING + " = '" + addressOfLiving + "', " 
     + KEY_PHONE + " = " + phoneNumber + ", " 
     + KEY_IDNP + " = " + IDNP 
     + " WHERE " + KEY_ID + " = 1"; 

结果将作为

UPDATE user SET address = 'Efdsdfd', phone = 3797333, idnp = 2006002050245 WHERE id = 1 
+0

谢谢!这似乎解决了我的问题。我将重新安装该应用程序,因为我的sqlite中的一个列没有创建,但最确定这是问题 –

+0

是的!我不得不等待10分钟,直到我能接受答案。谢谢! –

+1

或者您可以使用参数化SQL命令或查询并忘记引用。 –

2

你缺少简单的报价。请记住,当您为字符串列设置值时,值应该被简单的引号包围。 例如:

更新用户设置地址= Efdsdfd

应该

更新用户设置地址= 'Efdsdfd'

而且我的建议是,所有用于数据库查询的常量(简单引号,逗号,数据类型等)应该放置为常量i n一个DbHelper或常量文件,而不是写入。

例如:

字符串UPDATE_INFORMATION = “UPDATE” + TABLE_USER + “SET” + KEY_ADDRESS_OF_LIVING + “=” + addressOfLiving + “”

应该是:

字符串UPDATE_INFORMATION = “UPDATE” + TABLE_USER + “SET” + KEY_ADDRESS_OF_LIVING + “=” + Helper.SIMPLE_QUOTES + addressO fLiving + Helper.SIMPLE_QUOTES + Helper.COMMA

+0

感谢您的回复。编写一个简单的引用来调用辅助类的值会更容易:)最好的解决方案是调用SQLite更新函数,而不是运行手动书面查询,但是我为此进行了测试 –

+1

@AndrewT “最好的解决方案是调用SQLite更新函数”我完全同意你的看法。但我是谁来判断)=)。有一个很好的测试 –

+0

每个人都有他的编写代码的风格:) –

2

你必须把单引号内的文本值。

+1

或者您可以使用参数化的SQL命令或查询,而忘记引用。 –

+0

我只想看看如何运行查询,因为我将不得不执行使用查询无法实现的多个操作。但对于这个查询,你是完全正确的! –