SQLite的Andr​​oid的没有这样的表列students.studentId [英] SQlite Android no such table columns students.studentId

查看:126
本文介绍了SQLite的Andr​​oid的没有这样的表列students.studentId的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我觉得我几乎把我的时间在网上寻找可能的解决我的问题。我成功地插入一个学生和一个主题,但两个表获取数据时,它会导致程序崩溃,并显示错误没有这样的栏目。

请帮我。

创建表

 私有静态最后弦乐CREATE_TABLE_SUBJECT =CREATE TABLE
        + TABLE_SUBJECT +(+ SUBJECT_ID +INTEGER PRIMARY KEY,+ SUBJECT_NAME
        +TEXT+ SUBJECT_SCHEDULE +TEXT+ SUBJECT_FILELOCATION
        +TEXT+);私有静态最后弦乐CREATE_TABLE_STUDENT =CREATE TABLE
        + TABLE_STUDENT +(+ SUBJECT_ID +INTEGER PRIMARY KEY,+ STUDENT_NAME
        +TEXT+);私有静态最后弦乐CREATE_TABLE_FUSION =CREATE TABLE
        + TABLE_FUSION +(+ FUSION_ID +INTEGER PRIMARY KEY,+ SUBJECT_ID
        +INTEGER,+ stu​​dent_id数据+INTEGER+);

我从两个表显示数据查询

 公开名单<的Student GT; getAllStudnetsBySubject(长ID){
    清单<的Student GT;主题=新的ArrayList<的Student GT;();
    字符串selectQuery =SELECT * FROM+ TABLE_STUDENT +学生
            + TABLE_SUBJECT +科目,+ TABLE_FUSION +融合WHERE科目。
            + SUBJECT_ID +=+身份证+'+和科目。 + SUBJECT_ID
            +=+融合。 + FUSION_ID +和学生。 + stu​​dent_id数据+=
            +融合。 + FUSION_ID;    SQLiteDatabase分贝= this.getReadableDatabase();
    光标C = db.rawQuery(selectQuery,NULL);
    如果(c.moveToFirst()){
        做{
            学生S =新的学生();
            s.setStudentId(c.getInt((c.getColumnIndex(student_id数据))));
            s.setStudentName((c.getString(c.getColumnIndex(STUDENT_NAME))));
            subject.add(多个);
        }而(c.moveToNext());
    }    回到主题;
}

logcat的错误

  7月2日至27日:00:32.938:E / DatabaseHelper(20727):SELECT * FROM学生的学生,学科科目,融合融合WHERE subjects.subject_id ='1'和科目。 subject_id = fusions.id AND students.student_id = fusions.id
7月2日至27日:00:32.948:E / SQLiteLog(20727):(1)没有这样的列:students.student_id


解决方案

 字符串EntryA =将String.valueOf(db.getentry(Ravirrrr,KEY_Team_Name));

更改为

 字符串EntryA =将String.valueOf(db.getentry(Ravirrrr,_Team_Name));

KEY_Team_Name 是一个变量在你的sqlite的助手,其中包含列名_ TEAM_NAME的值。你不想要的文本字符串KEY_Team_Name

I think I almost spend my time searching in the web for the possible solution to my problem. I successfully inserted a student and a subject but when getting the data from the two tables, it will cause to crash the program and display an error "no such columns".

Please help me.

Creating tables

private static final String CREATE_TABLE_SUBJECT = "CREATE TABLE "
        + TABLE_SUBJECT + "(" + SUBJECT_ID + " INTEGER PRIMARY KEY," + SUBJECT_NAME
        + " TEXT," + SUBJECT_SCHEDULE + " TEXT," + SUBJECT_FILELOCATION
        + " TEXT" + ")";

private static final String CREATE_TABLE_STUDENT = "CREATE TABLE "
        + TABLE_STUDENT + "(" + SUBJECT_ID + " INTEGER PRIMARY KEY," + STUDENT_NAME
        + " TEXT" + ")";

private static final String CREATE_TABLE_FUSION = "CREATE TABLE "
        + TABLE_FUSION + "(" + FUSION_ID + " INTEGER PRIMARY KEY," + SUBJECT_ID
        + " INTEGER," + STUDENT_ID +" INTEGER" + ")";

My query for displaying data from two tables

public List<Student> getAllStudnetsBySubject(long id) {
    List<Student> subject = new ArrayList<Student>();


    String selectQuery = "SELECT  * FROM " + TABLE_STUDENT + " students, "
            + TABLE_SUBJECT + " subjects, " + TABLE_FUSION + " fusions WHERE subjects."
            + SUBJECT_ID + " = '" + id + "'" + " AND subjects." + SUBJECT_ID
            + " = " + "fusions." + FUSION_ID + " AND students." + STUDENT_ID + " = "
            + "fusions." + FUSION_ID;



    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery(selectQuery, null);


    if (c.moveToFirst()) {
        do {
            Student s = new Student();
            s.setStudentId(c.getInt((c.getColumnIndex(STUDENT_ID))));
            s.setStudentName((c.getString(c.getColumnIndex(STUDENT_NAME))));
            subject.add(s);


        } while (c.moveToNext());
    }

    return subject;
}

LOGCAT ERROR

02-27 07:00:32.938: E/DatabaseHelper(20727): SELECT  * FROM student students, subject subjects, fusion fusions WHERE subjects.subject_id = '1' AND subjects.subject_id = fusions.id AND students.student_id = fusions.id
02-27 07:00:32.948: E/SQLiteLog(20727): (1) no such column: students.student_id

解决方案

String EntryA =String.valueOf( db.getentry("Ravirrrr", "KEY_Team_Name"));

Change this to

String EntryA =String.valueOf( db.getentry("Ravirrrr", "_Team_Name"));

KEY_Team_Name is a variable in your sqlite helper the value of which contains the column name "_Team_Name". You don't want the literal string "KEY_Team_Name".

这篇关于SQLite的Andr​​oid的没有这样的表列students.studentId的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆