Java 如何使用android在SQLite中添加更多列

Java 如何使用android在SQLite中添加更多列,java,android,sql,database,Java,Android,Sql,Database,我需要在android上使用SQLite。我已经可以添加数据和查看数据了。但现在我需要添加更多的列,在这种情况下,我设置了“colu_TIME”。首先,我尝试将列记录数据从“COL_LASTNAME”更改为“COL_TIME”,但log cat显示“COL_TIME”列不存在。尽管我声明公共静态最终字符串COL_TIME=“date” 或者我做错了什么,请提供一些建议。 下面是添加数据的类和数据库类 DatabaseStudent.Java class DatabaseStudent exten

我需要在android上使用SQLite。我已经可以添加数据和查看数据了。但现在我需要添加更多的列,在这种情况下,我设置了“colu_TIME”。首先,我尝试将列记录数据从“COL_LASTNAME”更改为“COL_TIME”,但log cat显示“COL_TIME”列不存在。尽管我声明
公共静态最终字符串COL_TIME=“date”
或者我做错了什么,请提供一些建议。
下面是添加数据的类和数据库类

DatabaseStudent.Java

class DatabaseStudent extends SQLiteOpenHelper {
private static final String DB_NAME = "MyStudent";
private static final int DB_VERSION = 1;

public static final String TABLE_NAME = "Student";

public static final String COL_NAME = "name";
public static final String COL_LASTNAME = "last_name";
public static final String COL_SCHOOL = "school";
public static final String COL_TIME = "date";



public DatabaseStudent(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
}

public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLE_NAME 
            + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " 
            + COL_NAME + " TEXT, " + COL_LASTNAME 
            + " TEXT, " + COL_SCHOOL + " TEXT);");
    db.execSQL("INSERT INTO " + TABLE_NAME + " (" 
            + COL_NAME + ", " + COL_LASTNAME  
            + ", " + COL_SCHOOL + ") VALUES ('Sleeping'"
            + ", 'For Less', 'Android School');"); 
    //db.execSQL("INSERT INTO " + TABLE_NAME + " (" 
    //        + COL_DATE + ") VALUES ('Android School');"); 
}

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

AddStudent.Java

public class AddStudent extends Activity {
DatabaseStudent mHelper;
SQLiteDatabase mDb;


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add);

    mHelper = new DatabaseStudent(this);
    mDb = mHelper.getWritableDatabase();

    final EditText editName = (EditText)findViewById(R.id.editName);
    final EditText editLastName = (EditText)findViewById(R.id.editLastName);
    final EditText editSchool = (EditText)findViewById(R.id.editSchool);

    Button buttonAdd = (Button)findViewById(R.id.buttonAdd);

    buttonAdd.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            String name = editName.getText().toString();
            String lastname = editLastName.getText().toString();
            double school = getIntent().getDoubleExtra("Intent", 5.322);

            //Date&Time
            java.util.Date dt = new java.util.Date();
            java.text.SimpleDateFormat sdf = 
                 new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String currentTime = sdf.format(dt);

            if(name.length() != 0 && lastname.length() != 0 
                     ) {//&& school.length() != 0

                Cursor mCursor = mDb.rawQuery("SELECT * FROM " 
                        + DatabaseStudent.TABLE_NAME + " WHERE " 
                        + DatabaseStudent.COL_NAME + "='" + name + "'" 
                        + " AND " + DatabaseStudent.COL_LASTNAME + "='" 
                        + currentTime + "'" + " AND " 
                        + DatabaseStudent.COL_SCHOOL + "='" + school //add COL_SCHOOL = currentTime
                        + "'", null);

                if(mCursor.getCount() == 0) {
                    mDb.execSQL("INSERT INTO " + DatabaseStudent.TABLE_NAME 
                            + " (" + DatabaseStudent.COL_NAME 
                            + ", " + DatabaseStudent.COL_LASTNAME  
                            + ", " + DatabaseStudent.COL_SCHOOL 
                            + ") VALUES ('" + name + "', '" + currentTime //result ไม่มา
                            + "', '" + school + "');");



                    editName.setText("");
                    editLastName.setText("");
                    editSchool.setText("");


        }
    });

}

public void onStop() {
    super.onStop();
    mHelper.close();
    mDb.close();
}
}

如果要升级数据库,即更改表结构,则必须增加数据库版本,以便android知道必须升级数据库。为此,需要增加此值

 private static final int DB_VERSION = 1;


如果要在创建数据库后修改数据库。您应该通过更改数据库的版本代码,将数据库的旧版本升级到新版本

您需要从设备上卸载旧版本的数据库,然后只有它才会显示更改后的数据库版本的反映

因此,请确保在从设备安装新的应用程序数据之前更改数据库版本并卸载旧的应用程序数据

private static final int DB_VERSION = 1;


你的问题不清楚。你想做什么?我想添加更多的列名“colu_TIME”来存储“current TIME”。但是这个列已经存在了available@user3101751您在数据库中添加了哪些列?
private static final int DB_VERSION = 1;
private static final int DB_VERSION = 2;