android - 需要列约束或逗号,得到文本

标签 android sqlite

我非常有信心我已经正确地格式化了它,因为它基本上是我正在使用的另一个语句的精确副本(它工作正常),但我收到一个错误说明

'(', ')' <column constraint> or comma expected, got 'TEXT'

和行中“TEXT”下的红色下划线:

+ RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_CONTROL_NUMBER + " TEXT NOT NULL, "

就像我说的,我在其他地方基本上得到了与此声明完全相同的副本。

这是行不通的:

String sSQL;
        sSQL = "CREATE TABLE " + RecentFileWaypointContract.TABLE_NAME + " ("
                + RecentFileWaypointContract.Columns._ID + " INTEGER PRIMARY KEY NOT NULL, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_CONTROL_NUMBER + " TEXT NOT NULL, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_INSURED_NAME + " TEXT NOT NULL, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_CUSTOMER + " TEXT NOT NULL, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_ADDRESS1 + " TEXT NOT NULL, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_ADDRESS2 + " TEXT, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_CITY + " TEXT NOT NULL, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_STATE + " TEXT NOT NULL, "
                + RecentFileWaypointContract.Columns.RECENT_FILE_WAYPOINT_ZIPCODE + " TEXT NOT NULL);";
        db.execSQL(sSQL);

为了比较,这里是工作正常的那个:

String sSQL;
        sSQL = "CREATE TABLE " + UserWaypointContract.TABLE_NAME + " ("
                + UserWaypointContract.Columns._ID + " INTEGER PRIMARY KEY NOT NULL, "
                + UserWaypointContract.Columns.USER_WAYPOINT_TITLE + " TEXT NOT NULL, "
                + UserWaypointContract.Columns.USER_WAYPOINT_ADDRESS1 + " TEXT NOT NULL, "
                + UserWaypointContract.Columns.USER_WAYPOINT_ADDRESS2 + " TEXT, "
                + UserWaypointContract.Columns.USER_WAYPOINT_CITY + " TEXT NOT NULL, "
                + UserWaypointContract.Columns.USER_WAYPOINT_STATE + " TEXT NOT NULL, "
                + UserWaypointContract.Columns.USER_WAYPOINT_ZIPCODE + " TEXT NOT NULL);";

        db.execSQL(sSQL);

(此外,有两个不同的类,所以在两个地方使用 sSQL 不是问题)

有什么想法吗?

最佳答案

列名中不能有空格。将 "Control number" 替换为 "Control_number""ControlNumber""controlNumber" 或类似内容。

关于android - 需要列约束或逗号,得到文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56447728/

相关文章:

c# - SqliteDataReader 在 C# 中不起作用?

android - 如何避免在 Android Facebook SDK 中已经授权

c - 用C模拟数据库

java - SQLite数据库创建openOrCreateDatabase,什么是应用程序数据库的正确路径

database - 空sqlite数据库的BASH列表头

java - CustomAdapter 中的更新按钮

java - 避免 SQLite 中的连接池关闭

android - 没有 Firebase 对象的 setter/getter

安卓错误 : thread exiting with uncaught exception (group=0x40015560)

c# - 使用 WCF 服务的多个构造函数调用