向SQLite数据库提交电子邮件地址时出错

时间:2017-05-18 09:42:01

标签: android sqlite android-sqlite

我正在存储用户在SQLite数据库中注册应用程序时输入的信息,但应用程序崩溃时出现错误,这似乎是在我提交电子邮件地址时发生的。如果这是原因,你能告诉我如何纠正它吗?如果没有,请告诉我正确的理由和解决方案。

我的java文件:

var = var<<32;

编辑:添加错误日志

Error log

3 个答案:

答案 0 :(得分:1)

  

尝试通过以下功能将数据插入数据库,并仔细检查是否真的创建了电子邮件字段。以下功能只是一个例子。

SELECT * FROM hour_dev_data WHERE device = X AND event_time < YYYY

答案 1 :(得分:1)

您的核心错误是对于插入查询,您没有用引号括起要插入的值。在构建之后,您的查询看起来像这样:

insert into TABLE values(whatever@gmail.com)

什么时候应该是这样的:

insert into TABLE values('whatever@gmail.com')

在尝试解析当前查询时,SQL解析器会窒息,因为语法不正确。

尝试使用准备好的SQL查询,例如:

String sql = "INSERT INTO table_name (column_1, column_2) VALUES (?, ?)";
SQLiteStatement statement = db.compileStatement(sql);

int intValue = 57;
String stringValue = "hello";

statement.bindLong(1, intValue); // These match to the two question marks in the sql string
statement.bindString(2, stringValue); 

long rowId = statement.executeInsert();

或者甚至可以更好地使用SQLiteOpenHelper来执行此操作,例如:

ContentValues insertValues = new ContentValues();
insertValues.put("EMAIL", "example@mail.com");
db.insert("CashData", null, insertValues);

答案 2 :(得分:1)

String query = "INSERT INTO USERS VALUES(" + name +"," + uname + ",'" + email + "'," + password + "," + mobile + ");";

试试这段代码。 在单引号之间添加''。

希望有所帮助