Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中初始化表时出现问题_Java_Android_Database - Fatal编程技术网

Java 在Android中初始化表时出现问题

Java 在Android中初始化表时出现问题,java,android,database,Java,Android,Database,我有一个问题(可能是语法问题)。我正试图在SQLite的帮助下在android中创建一个表。我有一个NAME列和VALUE1到VALUE11列。但是,当我尝试运行代码时,在Logcat中出现以下错误: package nidhin.survey; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.content.Conte

我有一个问题(可能是语法问题)。我正试图在SQLite的帮助下在android中创建一个表。我有一个NAME列和VALUE1到VALUE11列。但是,当我尝试运行代码时,在Logcat中出现以下错误:

package nidhin.survey;

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

static final String TABLE = "mygrades";
static final String NAME = "name";
static final String VALUE1 = "value1";
static final String VALUE2 = "value2";
static final String VALUE3 = "value3";
static final String VALUE4 = "value4";
static final String VALUE5 = "value5";
static final String VALUE6 = "value6";
static final String VALUE7 = "value7";
static final String VALUE8 = "value8";
static final String VALUE9 = "value9";
static final String VALUE10 = "value10";
static final String VALUE11 = "value11";


DatabaseHelper(Context context)
{
    super(context, "grades.sqlite", null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) 
{

    db.execSQL("CREATE TABLE " + TABLE + " (_id INTEGER PRIMARY KEY AUTOINCREMENT," + 
            VALUE1 + " TEXT, " + VALUE2 + " TEXT, " +VALUE3 + " TEXT, " + VALUE4 + " TEXT, " +VALUE5 + " TEXT, " +VALUE6 + " TEXT, " +VALUE7 + " TEXT, " +VALUE8 + " TEXT, " +VALUE9 + " TEXT, " +VALUE10 + " TEXT, " +
            VALUE11 + " REAL);");

    ContentValues cv = new ContentValues();

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{
    // TODO Auto-generated method stub
    android.util.Log.w("mygrades", "Upgrading database, this will destroy all data");
    db.execSQL("DROP TABLE IF EXISTS " + TABLE);
    onCreate(db);
}

}
有什么想法吗?

正如logcat所说:“android.database.sqlite.SQLiteException:没有这样的列:value1”,我认为问题是当您创建表时,在这个段后面缺少一个空格:

03-30 02:38:16.593: E/AndroidRuntime(693): java.lang.RuntimeException: Unable to start activity ComponentInfo{nidhin.survey/nidhin.survey.Database}: android.database.sqlite.SQLiteException: no such column: value1: , while compiling: SELECT _id, name, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11 FROM mygrades
我认为应该是这样的:

" (_id INTEGER PRIMARY KEY AUTOINCREMENT,"

试试看。

自从第一次运行应用程序以来,您是否修改了表架构

如果你这样做了,那很可能是你的问题

查看您给出的代码,您仍然将DB版本设置为1,因此没有使用添加的新列重新创建表(我打赌其中一个是“value1”)


更改
super(上下文“grades.sqlite”,null,1)
super(上下文,“grades.sqlite”,null,2),再次运行你的应用程序,我打赌它会成功的

哦,你的创建语句中没有“NAME”列,你看到了吗?你已经在选择语句中使用了它。是的,我现在刚刚修复了这个问题,错误仍然是你的表已经创建好了吗?或者可能没有名为“value1:”的列,我想这里没有冒号。注销你的创建字符串并选择字符串,您肯定会找到您的答案。请记录onCreate…的输出字符串。。。String s=“CREATE TABLE”+TABLE+”(_idinteger主键自动递增,+VALUE1+…;android.util.Log.d(“mygrades”,s);
" (_id INTEGER PRIMARY KEY AUTOINCREMENT, ".