为什么我的数据库表中的列没有被创建?(Why the column in my database table is not getting created?)

编程入门 行业动态 更新时间:2024-10-28 05:21:22
为什么我的数据库表中的列没有被创建?(Why the column in my database table is not getting created?)

我已经尽可能地浏览了SO。 我希望我的表创建中没有语法错误,如我在类似问题的答案中所提到的那样。

请帮我解决这个问题。

未创建所需的列。 这是我得到的信息。

E / SQLiteLog:(1)表ContactDetails没有名为ContactNumber的列

E / SQLiteDatabase:插入ContactNumber时出错= 9655279648 ContactName = Ganesh R.

android.database.sqlite.SQLiteException:table ContactDetails没有名为ContactNumber(code 1)的列:,编译时:INSERT INTO ContactDetails(ContactNumber,ContactName)VALUES(?,?)

public class ProjectConstants { public static final String myDbName = "ContactsDatabase.db"; public static final String myTableName = "ContactDetails"; public static final String nameColumn = "ContactName"; public static final String numberColumn = "ContactNumber"; }

我有一个像上面这样的单独的类来存储整个项目中访问的常量值。

public class DBHelper extends SQLiteOpenHelper { private static final String SQLCreateEntries = "CREATE TABLE " + ProjectConstants.myTableName + " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + " )"; private static final String SQLDeleteEntries = "DROP TABLE IF EXISTS " + ProjectConstants.myTableName; public DBHelper(Context context) { super(context, String.valueOf(name), null, version); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(SQLCreateEntries); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL(SQLDeleteEntries); onCreate(sqLiteDatabase); } public void addContact(String nameLabel, String numberLabel) { SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(ProjectConstants.nameColumn, nameLabel); contentValues.put(ProjectConstants.numberColumn, numberLabel); sqLiteDatabase.insert(ProjectConstants.myTableName, null, contentValues); } }

I have surfed through SO to the best possible extent. I hope there is no Syntax error in my table creation as mentioned in the answers to the similar questions as of mine.

Please help me resolve this.

The desired column is not getting created. This is the message am getting.

E/SQLiteLog: (1) table ContactDetails has no column named ContactNumber

E/SQLiteDatabase: Error inserting ContactNumber=9655279648 ContactName=Ganesh R

android.database.sqlite.SQLiteException: table ContactDetails has no column named ContactNumber (code 1): , while compiling: INSERT INTO ContactDetails(ContactNumber,ContactName) VALUES (?,?)

public class ProjectConstants { public static final String myDbName = "ContactsDatabase.db"; public static final String myTableName = "ContactDetails"; public static final String nameColumn = "ContactName"; public static final String numberColumn = "ContactNumber"; }

I have a separate class like above to store the values of constants that are accessed throughout the project.

public class DBHelper extends SQLiteOpenHelper { private static final String SQLCreateEntries = "CREATE TABLE " + ProjectConstants.myTableName + " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + " )"; private static final String SQLDeleteEntries = "DROP TABLE IF EXISTS " + ProjectConstants.myTableName; public DBHelper(Context context) { super(context, String.valueOf(name), null, version); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(SQLCreateEntries); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL(SQLDeleteEntries); onCreate(sqLiteDatabase); } public void addContact(String nameLabel, String numberLabel) { SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(ProjectConstants.nameColumn, nameLabel); contentValues.put(ProjectConstants.numberColumn, numberLabel); sqLiteDatabase.insert(ProjectConstants.myTableName, null, contentValues); } }

最满意答案

你创建了表

"CREATE TABLE " + ProjectConstants.myTableName + " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + " )"

Create query的语法是

"CREATE TABLE MYTABLENAME (MYCOLUMNNAME MYCOLUMNTYPE, MYSECONDCOLUMNNAME MYSECONDCOLUMNTYPE,...)"

在您的Create query您缺少types和commas ,修复它,程序将工作:)

You created the table with

"CREATE TABLE " + ProjectConstants.myTableName + " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + " )"

the syntax for Create query is

"CREATE TABLE MYTABLENAME (MYCOLUMNNAME MYCOLUMNTYPE, MYSECONDCOLUMNNAME MYSECONDCOLUMNTYPE,...)"

In your Create query you are missing both types and commas, fix it and the program will work :)

更多推荐

本文发布于:2023-08-02 05:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1371088.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库   column   database   table   created

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!