java - 表 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 (?,?,?,? ,?,?)
解决方案
您的 SQL 插入语句使用带有小写“n”的“Category_name”,但您的 create table 语句使用大写“N”创建带有“Category_Name”的表。
确保您使用的数据库 API 不考虑列名的大小写。有时查询需要区分大小写。如果这不能解决问题,请告诉我。
推荐阅读
- swift - 带有登录屏幕的选项卡应用程序中的右侧菜单
- eclipse-hono - Eclipse-hono MQTT 适配器:无法处理消息
- sql - 如何在给定条件下获取周数
- javascript - 如何使用jquery动态添加行?
- android - 在 Kotlin 中未触发 LiveData 观察者
- dart - 如何在颤动中实现字母滚动
- visual-studio - Visual Studio 无法附加到 coreCLR。访问被拒绝
- javascript - postMessage() 在 WKWebView 中不起作用(iOS,目标 c)
- javascript - Console.log 在 Chrome 中总是返回 undefined
- regex - 匹配后出现的 grep