Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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中连接到db时,表中缺少字段_Java_Android_Android Layout - Fatal编程技术网

Java 在android中连接到db时,表中缺少字段

Java 在android中连接到db时,表中缺少字段,java,android,android-layout,Java,Android,Android Layout,使用准备好的语句,我试图在表中插入值,显示电子邮件中没有列名,但很明显,我并没有遗漏项目中任何地方的电子邮件 RegistrationAcitivity.java public void reg_submit(View v){ DataHelper con=new DataHelper(this); GetterRegistration model=new GetterRegistration(); SQLiteDatabase db = con.getWri

使用准备好的语句,我试图在表中插入值,显示电子邮件中没有列名,但很明显,我并没有遗漏项目中任何地方的电子邮件

RegistrationAcitivity.java

public void reg_submit(View v){

    DataHelper con=new DataHelper(this);
    GetterRegistration model=new GetterRegistration();

        SQLiteDatabase db = con.getWritableDatabase();

        **String sql="insert into registration(name,email,password)values(?,?,?)";**

        SQLiteStatement stmt = db.compileStatement(sql);

        stmt.bindString(1, model.getName());
        stmt.bindString(2, model.getEmail());
        stmt.bindString(3,  model.getPassword());           
        stmt.execute();
        db.close();
        Intent in = new Intent(this, CocomoActivity.class);
        startActivityForResult(in, requestCode);

}
}

DataHelper.java

 public class DataHelper extends SQLiteOpenHelper {
        public static final String TABLE_COMMENTS = "registration";
        public static final String id= "_id";
        public static final String name = "name";
        **public static final String email = "email";**
        public static final String password = "password";

        private static final String DATABASE_NAME = "mydb.db";
        private static final int DATABASE_VERSION = 1;

        // Database creation sql statement
        private static final String DATABASE_CREATE = "create table "
            + TABLE_COMMENTS + "( " + id
                + " integer primary key autoincrement, " + name
                + " text not null,"+email
                +"text not null," +password
                +"text not null)";
这是Logcat中的错误报告

05-11 15:16:25.785:E/AndroidRuntime(704):在java.lang.reflect.Method.invoke(Method.java:507) 05-11 15:16:25.785:E/AndroidRuntime(704):在android.view.view$1.onClick(view.java:2139) 05-11 15:16:25.785:E/AndroidRuntime(704):。。。还有11个 05-11 15:16:25.785:E/AndroidRuntime(704):由以下原因引起:android.database.sqlite.SQLiteException:表注册没有名为email:的列,编译时:插入注册(名称、电子邮件、密码)值(?,?) 05-11 15:16:25.785:E/AndroidRuntime(704):在android.database.sqlite.SQLiteCompiledSql.native_编译(本机方法) 05-11 15:16:25.785:E/AndroidRuntime(704):在android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92) 05-11 15:16:25.785:E/AndroidRuntime(704):在android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:65) 05-11 15:16:25.785:E/AndroidRuntime(704):在android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:83) 05-11 15:16:25.785:E/AndroidRuntime(704):位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:41) 05-11 15:16:25.785:E/AndroidRuntime(704):在android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1149) 05-11 15:16:25.785:E/AndroidRuntime(704):在android.cocomo.login.RegistrationActivity.reg_提交(RegistrationActivity.java:45)


任何帮助都将不胜感激。先谢谢你。如果有人建议让我认识朋友,我仍在努力解决这个问题。

电子邮件和文本之间没有空格

 **email+"text** not null," +...

在密码和文本之间

'private static final String DATABASE_CREATE=“CREATE table”+table_COMMENTS+”(“+id+”整型主键自动递增,“+name+”文本不为null,“+email+”文本不为null,“+password+”文本不为null)”;'还是一样的问题将
name+“text
更改为
name+”text
password+“text
更改为
password+”text
您当前的查询类似于
nametext not null、emailtext not null、passwordtext not null
zz这让我发疯了。。现在我删除了所有字符串,直接输入查询
private static final String DATABASE_CREATE=“创建表注册(_idinteger主键自动递增,名称文本不为null,电子邮件文本不为null,密码文本不为null);”仍然错误现在您有一个额外的“;”在数据库中,最后创建字符串。在更改“创建表”查询之前删除表。除非更改数据库版本,否则不会调用AsqliteOpenHelperOnCreate。