首页 > 解决方案 > 表 Laws_Table 没有名为 Category_name 的列(代码 1 SQLITE_ERROR)

问题描述

我通过单击 1 个列表中的元素创建了三个列表,它会自动移动到其他列表中。通过单击第一个列表的第一个值,第一个列表有 3 个值没有错误同样通过单击第二个和第三个列表的第一个和第二个值没有错误,但单击第三个值会引发错误并且列表在输出时为空.

我已经更改了从中获取数据的另一个表

package com.ayesha.judicial_provision;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;

public class database extends SQLiteOpenHelper {
    static String DATABASE_NAME="JD_PROVISION_DB";
    private  static final int DataBase_Version=1;

    ///////////LAWSDB////////////
    public static final String LAW_TABLE_NAME="Laws_Table";
    public static final String KEY_ID="id";
    public static final String Key_Category="Category_Name";
    public static final String key_Sub_Category="Sub_Category_name";
    public static final String LAW_Name="Law_name";
    public static final String Key_Law_Number="Law_number";
    public static final String KEY_Subject="subject";
    public static final String Key_Description="Description";
    public static final String Key_Condition="Condition";
    public static final String Key_Panelty="Panelty";

    public static final String Key_Date="Date";


    @Override
    public void onCreate(SQLiteDatabase database) {


        ///////LAWSDB/////////

        String CREATE_TABLE7="CREATE TABLE "+LAW_TABLE_NAME+" ("+KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"+Key_Category+" TEXT, "+key_Sub_Category+" TEXT," +
                ""+Key_Law_Number+" TEXT, "+LAW_Name+" TEXT, "+KEY_Subject+" TEXT, "+Key_Description+" TEXT," +
                " "+Key_Condition+" TEXT, "+Key_Panelty+" TEXT, "+Key_Date+" TEXT )";

        database.execSQL(CREATE_TABLE7);
        Log.d("Table ",CREATE_TABLE7);

      @override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

       db.execSQL("DROP TABLE IF EXISTS JD_PROVISION_DB"+LAW_TABLE_NAME);
         onCreate(db);

    }

    // laws



    public void addFemaleProtectionLaws(Context c){
        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues cv=new ContentValues();
        cv.put(Key_Category,"FemaleProtectionAct");
        cv.put(key_Sub_Category,"Spreading False Information");
        cv.put(KEY_Name," False Information ");
        cv.put(KEY_Subject,"Spreading False Information about an Individual");
        cv.put(Key_Description,"Whoever intentionally and publicly displays any" +
                " information through any information system,"+
                " which he knows to be false and intimidates or " +
                "harms the reputation or privacy of a natural person.");
        cv.put(Key_Panelty,"up to 3 Years in Prison or up to Rs. 1 Million in Fine or both");
        db.insert(LAW_TABLE_NAME,null,cv);
        Toast.makeText(c, "Data is inserted", Toast.LENGTH_SHORT).show();

        db.close();
    }


    }

}

android.database.sqlite.SQLiteException:表 Laws_Table 没有名为 Category_name 的列(代码 1 SQLITE_ERROR):,编译时:INSERT INTO Laws_Table(Category_name,Description,Category,Sub_Category_name,subject,Panelty) VALUES (?,?,?,? ,?,?)

标签: javaandroid

解决方案


您的 SQL 插入语句使用带有小写“n”的“Category_name”,但您的 create table 语句使用大写“N”创建带有“Category_Name”的表。

确保您使用的数据库 API 不考虑列名的大小写。有时查询需要区分大小写。如果这不能解决问题,请告诉我。


推荐阅读