Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在现有数据库sqlite中创建表_Java_Android_Sqlite_Orm_Sugarorm - Fatal编程技术网

Java 在现有数据库sqlite中创建表

Java 在现有数据库sqlite中创建表,java,android,sqlite,orm,sugarorm,Java,Android,Sqlite,Orm,Sugarorm,我有使用SQLiteOpenHelper创建的现有数据库,但现在我想转到Sugar Orm并尝试在现有数据库中添加新表。我遵循sugar orm页面的配置页面上提到的所有要点 我的配置是这样的 AndroidManifest.xml <application android:name=".application" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:l

我有使用SQLiteOpenHelper创建的现有数据库,但现在我想转到Sugar Orm并尝试在现有数据库中添加新表。我遵循sugar orm页面的配置页面上提到的所有要点

我的配置是这样的

AndroidManifest.xml

<application
    android:name=".application"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <meta-data android:name="DATABASE" android:value="database.db" />
    <meta-data android:name="VERSION" android:value="5" />
    <meta-data android:name="QUERY_LOG" android:value="true" />
    <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example.in.smart" />
模范班

public class Now extends SugarRecord<Now> {
public String type = null;
public String name = null;
public String address = null;
public Date created;

public Now(){}

public Now(String type, String name,String address,Date created){
    super();
    this.type = type;
    this.name = name;
    this.address = address;
    this.created = created;
}
}

添加数据处理

   Now now = new Now(entry.getKey(), entry.getValue().get(i).name, entry.getValue().get(i).address, calendar.getTime());
  now.save(); // throws exception here
但我有个例外

E/SQLiteLog﹕ (1) no such table: NOW
 E/SQLiteDatabase﹕ Error inserting ADDRESS=abc TYPE=Now NAME=tyy CREATED=1430229379156
android.database.sqlite.SQLiteException: no such table: NOW (code 1): , while compiling: INSERT INTO NOW(ADDRESS,TYPE,NAME,CREATED) VALUES (?,?,?,?)
        at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
        at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
        at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
        at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
        at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
        at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
        at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
        at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341)
        at com.orm.SugarRecord.save(SugarRecord.java:126)
        at com.orm.SugarRecord.save(SugarRecord.java:45)
任何建议,因为对我来说,看起来我做的每件事都是对的。谢谢,INSERT INTO语句无效:

INSERT INTO NOW(ADDRESS,TYPE,NAME,CREATED) VALUES (?,?,?,?,?)
尝试插入5个值而不是4个值。记下5个问号

我猜SugarRecord包含一个必须的id。

INSERT INTO语句无效:

INSERT INTO NOW(ADDRESS,TYPE,NAME,CREATED) VALUES (?,?,?,?,?)
尝试插入5个值而不是4个值。记下5个问号


我猜SugarRecord包含一个必须的id。

同样的情况也发生在我身上,解决方案只是在清单中更新了数据库版本:

发件人:

致:


关于。

同样的情况也发生在我身上,解决方案只是更新清单中的数据库版本:

发件人:

致:

问候

我也有同样的问题。检查其中一个条目是否为空

Sugar ORM不支持空值。请同时增加数据库的版本

我也有同样的问题。检查其中一个条目是否为空



Sugar ORM不支持空值。请也增加数据库的版本。

尝试禁用即时运行,sugar orm不能与即时运行一起工作。

尝试禁用即时运行,sugar orm不能与即时运行一起工作。

你能给我们看一下堆栈跟踪吗?更新了堆栈跟踪你也通过了吗?您必须升级版本并提供一个升级脚本来创建新的Now表-这不会自动发生。是的,我在AndroidManifest中将版本从4更新到5..@user3290805:请添加文件名,您的问题的升级脚本的位置和内容。您能给我们看一下堆栈跟踪吗?更新了堆栈跟踪您也通过了吗?您必须升级版本并提供一个升级脚本来创建新的Now表-这不会自动发生。是的,我在AndroidManifest中将版本从4更新到5..@user3290805:请添加文件名,您的问题升级脚本的位置和内容。那么它应该是构造函数中的问题,而不是找不到表,实际上我检查它的数量是否相等?在insert Into中,由于某些原因表不存在,我已经对其进行了更新。无法从您的代码示例中推断原因。是的,这就是问题所在,但这正是我的代码中的问题。有什么提示吗?您的代码看起来不错。也许您希望调试到调用构造函数的行中。可能传递的值是错误的。SugarOrm模型类创建的表是否允许null?那么应该是构造函数中的问题,而不是找不到表,实际上我检查它的数量是否相等?在insert Into中,由于某些原因表不存在,我已经对其进行了更新。无法从您的代码示例中推断原因。是的,这就是问题所在,但这正是我的代码中的问题。有什么提示吗?您的代码看起来不错。也许您希望调试到调用构造函数的行中。可能传递的值是错误的。SugarOrm模型类创建的表是否允许null?
INSERT INTO NOW(ADDRESS,TYPE,NAME,CREATED) VALUES (?,?,?,?,?)
<meta-data
            android:name="VERSION"
            android:value="2" />
<meta-data
            android:name="VERSION"
            android:value="3" />
Now now = new Now(entry.getKey(), entry.getValue().get(i).name, entry.getValue().get(i).address, calendar.getTime());