java - SQLite 编辑器中没有数据

标签 java android sqlite

我在 SQLite 数据库中插入数据时遇到问题。当我单击“保存”按钮时,我没有在 SQLite 编辑器中看到数据。 这段代码有什么问题?

1) AddMedicine.java

private void AddData() {
    btn3.setOnClickListener(
        new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HashMap queryValues = new HashMap();
                queryValues.put("medicine", medicine.getText().toString());
                queryValues.put("quantity", quantity.getText().toString());
                queryValues.put("date", date.getText().toString());
                queryValues.put("time", time.getText().toString());
                boolean isInserted = myDb.insertData(queryValues);

                if (isInserted = true) {
                    Toast.makeText(AddMedicine.this, "Data inserted", Toast.LENGTH_LONG).show();
                    Intent i = new Intent(AddMedicine.this, MainActivity.class);
                    startActivity(i);
                    //   this.callHomeActivity(view);

                } else
                    Toast.makeText(AddMedicine.this, "Data not inserted", Toast.LENGTH_LONG).show();
            }
        }
    );
}

2) DatabaseHelper.java

public boolean insertData(String Name, String quantity, String Date, String Time) {

    db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_2, Name);
    contentValues.put(COL_3, quantity);
    contentValues.put(COL_4, Date);
    contentValues.put(COL_5, Time);
    long result = db.insert(TABLE_NAME, null, contentValues);

    if (result == -1) {
        return false;
    } else {
        return true;
    }
}

最佳答案

方法 insertData 需要 4 个参数才能工作,但您将 HashMap 作为唯一参数传递到此方法中。也许这是你的问题?

希望有帮助。

UPD

您有多种可能来改变这种情况。 第一种 - 使用 GreenRobo 建议的代码,或者您可以重写方法 insertData 以适合您的 HashMap 参数。例如:

public boolean insertData(Map<String> map) { 
    db = this.getWritableDatabase();     
    ContentValues contentValues = new ContentValues();
     contentValues.put(COL_2, map.get("name"));
     contentValues.put(COL_3, map.get("quantity"));
     contentValues.put(COL_4, map.get("date"));
     contentValues.put(COL_5, map.get("time")); 
     long result = db.insert(TABLE_NAME, null, contentValues); 
    return (result != - 1);
}

关于java - SQLite 编辑器中没有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261330/

相关文章:

java - 我正在尝试迭代 Hashmap<LinkedList<String>, int[]>>。有没有比我正在做的更简单的方法?

sqlite - SQLite真的支持DATE类型吗?

java - Spring Batch 可以多次使用 Driving Query 的结果吗?

java - 同一包内的访问问题?

java - Struts 2 - 设置 bean Action

android - 我如何将 'ScrollView' 应用于 Android 中的其他布局?

android - 使用 Nmap 进行移动设备识别

android - 在文件资源管理器 (DDMS) 中找不到 db 文件

sqlite - 在 Azure 存储上托管 SQLite DB?

python - 是否可以将值列表保存到 SQLite 列中?