在android中创建SQL表

在android中创建SQL表,android,database,sqlite,Android,Database,Sqlite,我想为每个向我发送一条特定文本消息的数字创建一个表,例如R:。当我收到此消息时,它应该调用另一个活动,并将发送的人数传递给它。我正在为此使用intent,表的名称应该是“U”+数字。但将非静态变量指定给静态变量是错误的。如果我删除静态变量,则它是错误的请求静态变量 import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.d

我想为每个向我发送一条特定文本消息的数字创建一个表,例如R:。当我收到此消息时,它应该调用另一个活动,并将发送的人数传递给它。我正在为此使用intent,表的名称应该是“U”+数字。但将非静态变量指定给静态变量是错误的。如果我删除静态变量,则它是错误的请求静态变量

import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;

public class DBAdapter extends ActionBarActivity{
static final String TAG = "DBAdapter";

static final String DATABASE_NAME = "Users";
static  String DATABASE_TABLE = "";
static final int DATABASE_VERSION = 2;

 String DATABASE_CREATE ="";

final Context context;

DatabaseHelper DBHelper;
SQLiteDatabase db;
Intent in=getIntent();
String num=in.getStringExtra("num");
String date=in.getStringExtra("date");

public DBAdapter(Context ctx)
{
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper
{
    DatabaseHelper(Context context)
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        try {
            DATABASE_CREATE="CREATE TABLE IF NOT EXISTS"+num+"(date VARCHAR,latitude VARCHAR,longitude VARCHAR);";
            DATABASE_CREATE="";
            db.execSQL(DATABASE_CREATE);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS contacts");
        onCreate(db);
    }
}

//---opens the database---
public DBAdapter open() throws SQLException 
{
    db = DBHelper.getWritableDatabase();
    return this;
}

//---closes the database---
public void close() 
{
    DBHelper.close();
}

}

下一行充满了错误

DATABASE_CREATE="CREATE TABLE IF NOT EXISTS"+num+"(date VARCHAR,latitude VARCHAR,longitude VARCHAR);"; // FULL OF ERRORS!!
应该是这样的

DATABASE_CREATE="CREATE TABLE IF NOT EXISTS Table" + num + " (date TEXT, latitude TEXT, longitude TEXT)";
因此,请更正表创建并删除 然后,下一行将表创建设置为空字符串

DATABASE_CREATE=""; // EMPTY!! This one is then executed on next line!!
然后执行以下操作:

db.execSQL(DATABASE_CREATE);
这相当于

db.execSQL("");

因此,更正表创建字符串并删除数据库_CREATE=

给我们看一些reveland代码&我试图添加图像,但没能给我几分钟时间,我愿意你可以复制代码或上传到另一个网站,比如ImageShackOk,但它要求num是静态变量,但不能是静态的,它在中给出错误不是静态意图不能是静态的,如果我让num是静态的,它要求在静态中生成,如果我这样做了,它会给出一个错误getintent方法不是静态的,并且不能作为static进入。字符串num从intent变量“in”获取其值。所以说不能对非静态变量“in”进行静态引用。如果我使用“in”static,则表示getIntent是非静态方法