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