mysql - for 循环语句在数据库中创建行

标签 mysql sql database loops rows

我尝试使用 for 循环语句,如下所示:

for(int i=1; i <= 48; i++) { insertdiary("", ""); }

在我的 MyDB 文件中:

package com.cookbook.data;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.util.Log;

public class MyDB {
    private SQLiteDatabase db;
    private final Context context;
    private final MyDBhelper dbhelper;



    // Initializes MyDBHelper instance
    public MyDB(Context c){

        context = c;
        dbhelper = new MyDBhelper(context, Constants.DATABASE_NAME, null,
                                            Constants.DATABASE_VERSION);

    }


    // Closes the database connection
    public void close()
    {
        db.close();
    }

    // Initializes a SQLiteDatabase instance using MyDBhelper
    public void open() throws SQLiteException
    {

        try {
            db = dbhelper.getWritableDatabase();
        } catch(SQLiteException ex) {
            Log.v("Open database exception caught", ex.getMessage());
            db = dbhelper.getReadableDatabase();
        }
    }


    // Saves a diary entry to the database as name-value pairs in ContentValues instance
    // then passes the data to the SQLitedatabase instance to do an insert
    public long insertdiary(String title, String content)
    {

        try{
            ContentValues newTaskValue = new ContentValues();
            newTaskValue.put(Constants.TITLE_NAME,  title);
            newTaskValue.put(Constants.CONTENT_NAME, content);
            newTaskValue.put(Constants.DATE_NAME,     java.lang.System.currentTimeMillis());            
            return db.insert(Constants.TABLE_NAME,  null, newTaskValue);
        } catch(SQLiteException ex) {
            Log.v("Insert into database exception caught",
                    ex.getMessage());
            return -1;
        }

    }

    // updates a diary entry (existing row)
        public boolean updateDiaryEntry(String title, long rowId)
        {

            ContentValues newValue = new ContentValues();
            newValue.put(Constants.TITLE_NAME, title);

            return db.update(Constants.TABLE_NAME, newValue, Constants.KEY_ID + "=" +     rowId, null)>0;

        }

    // Reads the diary entries from database, saves them in a Cursor class and returns     it from the method
    public Cursor getdiaries()
    {
        Cursor c = db.query(Constants.TABLE_NAME, null, null,
                            null, null, null, null);
        return c;
    }

}

我的目标是在首次创建数据库或表时创建 48 个空行,以便我可以进一步更新这些行而不是创建新条目。不幸的是,我尝试使用此代码时不幸出现错误或创建的行数超过 48 行。 有谁可以帮助我利用此代码在第一次创建数据库或表时创建 48 行吗? 我感谢所有的帮助。 稻田

最佳答案

除非确实有一些严格的规则来管理创建 48 个空行的要求,否则创建它们确实是绝对错误的方法。当您需要将数据插入其中时,根据需要创建它们。

关于mysql - for 循环语句在数据库中创建行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22946207/

相关文章:

php - 如何使用 doctrine2 创建数据库?

mysql - 使用三向连接的 SQL 查询

php - php jquery mysql 和 ajax 无限滚动的问题

mysql - UNION 查询功能和查询结构

php - 使用 SQL 查询获取团队排名

php - 如果不为空,则从重复的文本字段插入数据库 php sql

php - 将 _DB_Prefix_ 和 $id_manufacturer 放在哪里?

.net - SQL 缓存和 Entity Framework

截断时的 SQL 触发器

mysql - 设计一个数据库来处理产品变化的库存跟踪