1
我想检索两个日期之间的数据之间的报告下面是我的查询它错了,我需要它正确的,因此任何人帮助我,请 还我不需要rawquery我想没有像下面生成两个日期
public Cursor CstmRpot(String fd, String td) {
// TODO Auto-generated method stub
String[] columns = new String[] {EX_RowID,EX_Cattype, EX_Date, EX_Price, EX_Type };
Cursor c= ourdatabase.query(Food_TABLE, columns, EX_Date + "= BETWEEN '"+ fd + "'
AND '" + td + "'" , null, null, null, null);
if (c != null) {
c.moveToFirst();
}
return c;
}
这里是我loggat我的查询只想变化不大,我想,但现在我搞不清什么,我可以用它做
01-27 00:22:24.827: E/AndroidRuntime(399): FATAL EXCEPTION: main
01-27 00:22:24.827: E/AndroidRuntime(399): java.lang.RuntimeException: Unable to start
activity ComponentInfo{com.exmang/com.exmang.CstmrptShow}:
android.database.sqlite.SQLiteException: near "'19-1-2014'": syntax error: , while
compiling: SELECT _id, Ecattype, Ecdate, Ecprice, itype FROM FoodTable WHERE
EcdateBETWEEN '19-1-2014' AND '27-1-2014'
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.os.Handler.dispatchMessage(Handler.java:99)
01-27 00:22:24.827: E/AndroidRuntime(399): at android.os.Looper.loop(Looper.java:123)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.app.ActivityThread.main(ActivityThread.java:4627)
01-27 00:22:24.827: E/AndroidRuntime(399): at
java.lang.reflect.Method.invokeNative(Native Method)
01-27 00:22:24.827: E/AndroidRuntime(399): at
java.lang.reflect.Method.invoke(Method.java:521)
01-27 00:22:24.827: E/AndroidRuntime(399): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-27 00:22:24.827: E/AndroidRuntime(399): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-27 00:22:24.827: E/AndroidRuntime(399): at dalvik.system.NativeStart.main(Native
Method)
01-27 00:22:24.827: E/AndroidRuntime(399): Caused by:
android.database.sqlite.SQLiteException: near "'19-1-2014'": syntax error: , while
compiling: SELECT _id, Ecattype, Ecdate, Ecprice, itype FROM FoodTable WHERE
EcdateBETWEEN '19-1-2014' AND '27-1-2014'
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
01-27 00:22:24.827: E/AndroidRuntime(399): at android.database.sqlite.SQLiteProgram.
<init>(SQLiteProgram.java:80)
01-27 00:22:24.827: E/AndroidRuntime(399): at android.database.sqlite.SQLiteQuery.
<init>(SQLiteQuery.java:46)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1229)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1184)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1264)
01-27 00:22:24.827: E/AndroidRuntime(399): at
com.exmang.ExMgDB.CstmRpot(ExMgDB.java:112)
01-27 00:22:24.827: E/AndroidRuntime(399): at
com.exmang.CstmrptShow.displayListView(CstmrptShow.java:31)
01-27 00:22:24.827: E/AndroidRuntime(399): at
com.exmang.CstmrptShow.onCreate(CstmrptShow.java:23)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-27 00:22:24.827: E/AndroidRuntime(399): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-27 00:22:24.827: E/AndroidRuntime(399):
先生它不工作我删除它,但一些如何chenge我的loggate之前 –
确保发送到您的数据库是一个有效的SQL查询。我假设你正在使用SQL DB。 –
不,先生我使用sqllite android应用程序我现在添加我的loggat所以请再次检查一遍,我也设置loggat我的数据是去DB正确 –