编辑,根据以下答案略微更改了代码,但仍无法正常工作。 我还添加了一条日志消息,告诉我getCount是否返回>
0,并且确实如此,所以我认为查询可能有问题吗?或我对光标的使用。
我已经创建了一个表,我想检查它是否为空,如果它为空,我想运行一些插入语句(存储在数组中)。
下面是我的代码,虽然我没有错误,但是当我拉出.db文件时,我可以看到它不起作用。您将如何解决这个问题?
public void onCreate(SQLiteDatabase db) {
Log.i("DB onCreate", "Creating the database...");//log message
db.execSQL(createCATBUDTAB);
db.execSQL(createTWOWEETAB);
try{
Cursor cur = db.rawQuery("SELECT COUNT(*) FROM CAT_BUD_TAB", null);
if (cur.getCount() > 0){
Log.i("DB getCount", " getcount greater than 0");//log message
//do nothing everything's as it should be
}
else{//put in these insert statements contained in the array
Log.i("DB getCount", " getcount less than 0, should read array");//log message
for(int i=0; i<13; i++){
db.execSQL(catInsertArray[i]);
}
}
}catch(SQLiteException e){System.err.println("Exception @ rawQuery: " + e.getMessage());}
}
抱歉,如果这是一个非常愚蠢的问题或方法,那么我是新手。任何答案非常感谢!
查询SELECT COUNT(*)
现有表应该 永远不会 返回null。如果表中没有行,它将返回包含零值的一行。
相反,具有非零值的行表示它 不为 空。
在这两种情况下,都应返回一行,这意味着它将始终通过
//do nothing everything's as it should be
部分。
要解决此问题,请将查询保持原样(您不希望这样做,select column_name
因为那是不必要的,可能会导致效率低下)。将其保留为select count(*)
,它将始终返回一行,并使用以下代码(仅在我的脑中测试过,因此请小心):
Cursor cur = db.rawQuery("SELECT COUNT(*) FROM CAT_BUD_TAB", null);
if (cur != null) {
cur.moveToFirst(); // Always one row returned.
if (cur.getInt (0) == 0) { // Zero count means empty table.
for (int i = 0; i < 13; i++) {
db.execSQL (catInsertArray[i]);
}
}
}
有一个任务从控制台得到N个数字,找到最长和最短的一个和他们的长度。任务并不难,工作正常,但我决定做一个检查,如果控制台输入与任务的条件相对应: 只有整数。 是精确的N个数字,而不是更多/更少。 我决定编写一个布尔方法isinputCorret(),它将使用扫描器并检查输入是否正确,但它不能正常工作。
问题内容: 在Python中,如何检查是否有数据? 我发现不仅可以检查stdin是否已连接到TTY设备,还可以检查是否有可用数据。 但是如果有人使用诸如 然后使用,它仍然返回True。我需要做什么检查stdin是否有数据? 问题答案: 在Unix系统上,您可以执行以下操作: 在Windows上,虽然select模块只能与套接字一起使用,所以您需要使用其他机制。
问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题indexOf。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器
问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。 在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器不需要使用。
问题内容: 我需要检查字符串是否包含数字。任何数字。字符串是否为数字,而不是数字,但包含一个数字。 例子: ‘test’=没有数字。 ‘test2’=包含数字。 问题答案: 使用正则表达式: 不使用正则表达式:
问题内容: 我正在实现是否有位图,那么它应该将图像从imageview保存到内部存储器,否则在应用程序的内部存储器中设置另一个位图。这是代码:_ 问题答案: 您可以按以下方式检查它: 只需检查Bitmap值,如下所示: