android - 动态创建sqlite表

标签 android sqlite dynamic onclick

我的代码正在创建一个sqlite表,该表在单击添加按钮时保存输入数据,我想要做的是每次单击按钮NewTab时都会创建一个新表,我到处搜索,也尝试使用共享首选项来制作不同的表名称,但没有任何帮助,任何人都可以帮助我,谢谢。

public class MyDBHandler extends SQLiteOpenHelper{
public static final String DATABASE_NAME = "Shopping.db";
public static final String TABLE_NAME = "Main_table";

public static final String COL_2 = "NAME";
public static final String COL_3 = "PRICE";

public MyDBHandler(Context context) {
    super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,PRICE TEXT)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
    onCreate(db);
}

public boolean insertData(String name,String price) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_2,name);
    contentValues.put(COL_3,price);
    long result = db.insert(TABLE_NAME,null ,contentValues);
    if(result == -1)
        return false;
    else
        return true;
}

public Cursor getAllData() {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor res = db.rawQuery("select * from "+TABLE_NAME,null);
    return res;
}

}

主要 Activity

    btnAddData.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        MyDBHandler myDb = new MyDBHandler(MainActivity.this);
                        boolean isInserted = myDb.insertData(editName.getText().toString(), null);
                        if (isInserted == true) {
                            Toast.makeText(MainActivity.this, "Data Inserted", Toast.LENGTH_LONG).show();
                            Cursor res = myDb.getAllData();

                            while (res.moveToNext()) {
                                final TextView textView = new TextView(MainActivity.this);

                                String valor1 = "<p style='font-family:verdana'>" + a + "</p> ";
                                textView.setText(Html.fromHtml(valor1));
                                lin.addView(textView);



                            }


                        } else {
                            Toast.makeText(MainActivity.this, "Data not Inserted", Toast.LENGTH_LONG).show();
                        }
                    }
                }
        );

最佳答案

创建一个通过sharedPreferences保存的变量,这是你的表计数,然后创建一个sql数据库,然后执行

SQLDATABASENAME.execSql("CREATE TABLE Table" + your_counter_variable_ + " #create rows here ;");

关于android - 动态创建sqlite表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063439/

相关文章:

android - 当我同步我的项目然后告诉我(任务 ':app:processDebugGoogleServices' 执行失败)但我添加了 google-services.json

安卓 Stackmob : Prompting logged in user information

Python SQLITE 插入不工作

c# - 以编程方式更改链接颜色

Javascript隐藏显示动态div

java - LibGDX 项目无法在我的安卓设备上运行

android - dagger-android 自定义作用域

iphone - 将 SQL 行加载到索引的 UITableView

php - PDO SQLite 查询零结果问题

c# - 是否应该使用新的 C# 类型 'dynamic'?