【发布时间】:2020-08-10 00:44:41
【问题描述】:
我面临一个非常奇怪的问题,我真的看不出是什么原因造成的。 所以我试图在表中插入值。 让我首先告诉你该表存在(我已经检查了它 Db Browser for SQLite)。 这个问题让我对插入查询进行了硬编码,但没有任何改变。为了节省空间,我将只粘贴必要的代码块。因此,让我向您展示代码块。 在我的数据库助手类中
public class DBHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 3;
public static final String DATABASE_NAME = "SemsWMS.db";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(createCompany);
db.execSQL(createFinDoc);
db.execSQL(createMtrLines);
db.execSQL(createTrdr);
db.execSQL(createTrdBranch);
db.execSQL(createMtrl);
db.execSQL(createMtrLot);
db.execSQL(createMtrSubstitute);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists company");
db.execSQL("drop table if exists findoc");
db.execSQL("drop table if exists mtrlines");
db.execSQL("drop table if exists trdr");
db.execSQL("drop table if exists trdbranch");
db.execSQL("drop table if exists mtrl");
db.execSQL("drop table if exists mtrlot");
db.execSQL("drop table if exists mtrsubstitute");
db.execSQL(createCompany);
db.execSQL(createFinDoc);
db.execSQL(createMtrLines);
db.execSQL(createTrdr);
db.execSQL(createTrdBranch);
db.execSQL(createMtrl);
db.execSQL(createMtrLot);
db.execSQL(createMtrSubstitute);
}
public static class Company implements BaseColumns{
public static final String tablename = "company";
public static final String company = "company";
public static final String site = "site";
public static final String webuser = "webuser";
public static final String password = "password";
public static final String appid = "appid";
public static final String webuserid = "webuserid";
public static final String upddatetrdr = "upddatetrdr";
public static final String upddatetrdbranch = "upddatetrdbranch";
public static final String upddatemtrl = "upddatemtrl";
public static final String upddatemtrlot = "upddatemtrlot";
public static final String upddatemtrsubstitute = "upddatemtrsubstitute";
}
public static final String createCompany = "create table " + Company.tablename + "("+Company.company+" integer primary key, "
+Company.site+" text, "
+Company.webuser+" text, "
+Company.password+" text, "
+Company.appid +" integer, "
+Company.webuserid+" integer, "
+Company.upddatetrdr+" numeric, "
+Company.upddatetrdbranch+" numeric, "
+Company.upddatemtrl+" numeric, "
+Company.upddatemtrlot+" numeric, "
+Company.upddatemtrsubstitute+" numeric)";
DBHelper 类中的硬编码块
public static String insertCompany(){
String sql = "insert into company(company,site,appid,webuser,password) values(2,rigas,9999,sems,1234)";
return sql;
}
DBHelper 类中用于在其他活动中执行查询的方法
public void insertInDB(String query){
SQLiteDatabase db = getWritableDatabase();
db.execSQL(query);
}
所以在我打电话的其他活动中 插入数据库(插入公司()); 我明白了:
android.database.sqlite.SQLiteException: no such column: rigas (code 1): , while compiling: insert into company(company,site,appid,webuser,password) values(2,rigas,9999,sems,1234)
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such column: rigas (code 1): , while compiling: insert into company(company,site,appid,webuser,password) values(2,rigas,9999,sems,1234))
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1073)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:638)
它说列“rigas”....但在我的插入查询中没有这样的列。 ..“rigas”是“site”列的值。
如果有人能在代码中找到一些东西,我将非常感激。
【问题讨论】:
标签: android sqlite android-sqlite sql-insert