【问题标题】:Store data in Database Android在数据库 Android 中存储数据
【发布时间】:2021-04-01 13:12:44
【问题描述】:

我制作了一个显示多行值的 TextView
我想将该值保存在 SQLite 数据库中。这是我使用的代码:

public void AddContact(Contact c)
{
    SQLiteDatabase db=this.getWritableDatabase();
    ContentValues cv=new ContentValues();
    cv.put("nom",c.getNom());
    Scanner s = new Scanner(String.valueOf(cv));
    while (s.hasNextLine()){
        String line = s.nextLine();
        db.insert("contact",line,cv);
        
    }

问题是当我保存值时,整个值被插入到一个单元格中。我希望将值每行分开,然后插入到每行的单个单元格中,尽管我正在使用带有插入数据的扫描仪方法,但它不起作用。 有什么办法吗?

【问题讨论】:

    标签: java android database sqlite android-sqlite


    【解决方案1】:

    在您的代码中,这一行:

    cv.put("nom",c.getNom());
    

    c.getNom() 的完整字符串分配给ContentValues 对象,这就是您在表中插入的内容。
    您必须将c.getNom() 的每一行分配给cv 并插入它,在while 循环的每次迭代中插入一个:

    public void AddContact(Contact c) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        Scanner s = new Scanner(c.getNom());
        while (s.hasNextLine()) {
            String line = s.nextLine();
            cv.put("nom", line); 
            db.insert("contact", null, cv);
        }      
    }
    

    【讨论】:

    • 逐行插入已完成,但在数据库中插入的每个元素之间都有空框
    • @Olfatounsii 如果字符串的行由"\n\r" 分隔,则使用:if (line.trim().length() > 0) {db.insert("contact", null, cv);} 而不是db.insert("contact", null, cv);
    猜你喜欢
    • 2012-07-24
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多