如何从SQLite数据库在Android中检索字符串格式的数据

影碟

我想从SQLite以String格式检索数据,该数据用于评分栏。但是我遇到了RunTimeException和语法错误,我的应用程序崩溃了,有人可以帮我吗,谢谢。

这是我的日志猫信息:

07-25 15:51:06.386: E/AndroidRuntime(28493): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sqlitedemo/com.sqlitedemo.Rating_Details}: android.database.sqlite.SQLiteException: near "Two": syntax error: , while compiling: SELECT performance_rate_one, performance_rate_two, performance_rate_three, performance_rate_four, performance_rate_five FROM performance WHERE task_name =Task Two
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.os.Looper.loop(Looper.java:123)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.app.ActivityThread.main(ActivityThread.java:3683)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at java.lang.reflect.Method.invokeNative(Native Method)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at java.lang.reflect.Method.invoke(Method.java:507)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at dalvik.system.NativeStart.main(Native Method)
07-25 15:51:06.386: E/AndroidRuntime(28493): Caused by: android.database.sqlite.SQLiteException: near "Two": syntax error: , while compiling: SELECT performance_rate_one, performance_rate_two, performance_rate_three, performance_rate_four, performance_rate_five FROM performance WHERE task_name =Task Two
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1324)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at com.sqlitedemo.Rating_Details.showPerformanceRate(Rating_Details.java:63)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at com.sqlitedemo.Rating_Details.onCreate(Rating_Details.java:48)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-25 15:51:06.386: E/AndroidRuntime(28493):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)

这是我的活动代码:

public class Rating_Details extends Activity
{
    String emp_name;
    String task_name;
    String task_date;

    TextView tvEmpNAme;
    TextView tvTaskName;
    TextView tvTaskDate;

    SQLiteDatabase db;
    DatabaseHelper databaseHelper;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rating_details);

        Intent intent = getIntent();

        emp_name = intent.getExtras().getString("EMPNAME");
        task_name = intent.getExtras().getString("TASKNAME");
        task_date = intent.getExtras().getString("DATE");

        System.out.println("____________________________________________________");
        Log.e("emp_name in Rating_Details  "," = " + emp_name);
        Log.e("task_name in Rating_Details "," = " + task_name);
        Log.e("task_date in Rating_Details  "," = " + task_date);

        tvEmpNAme = (TextView)findViewById(R.id.tv_empName);
        tvTaskName = (TextView)findViewById(R.id.tv_taskName);
        tvTaskDate = (TextView)findViewById(R.id.tv_taskDate);

        System.out.println("____________________________________________________");
        tvEmpNAme.setText(emp_name);
        tvTaskName.setText(task_name);
        tvTaskDate.setText(task_date);

        showPerformanceRate();

    }


    private void showPerformanceRate()
    {
        DatabaseHelper databaseHelper = new DatabaseHelper(this.getApplicationContext());
        db = databaseHelper.getWritableDatabase();

        System.out.println("__________________________________________________________________________________");

        String query = "SELECT performance_rate_one, performance_rate_two, performance_rate_three, performance_rate_four, performance_rate_five FROM performance WHERE task_name =" +task_name;


        Cursor  cursor = db.rawQuery(query,null);

        if (cursor != null && cursor.getCount() != 0) 
        { 
            if (cursor.moveToFirst())
            {
                do
                {

                       String strRate1 =  cursor.getString(cursor.getColumnIndex("performance_rate_one"));
                       String strRate2 =  cursor.getString(cursor.getColumnIndex("performance_rate_two"));
                       String strRate3 =  cursor.getString(cursor.getColumnIndex("performance_rate_three"));
                       String strRate4 =  cursor.getString(cursor.getColumnIndex("performance_rate_four"));
                       String strRate5 =  cursor.getString(cursor.getColumnIndex("performance_rate_five"));

                       System.out.println("____________________________________________________");
                       Log.e("strRate1 "," is "+strRate1);
                       Log.e("strRate2 "," is "+strRate2);
                       Log.e("strRate3 "," is "+strRate3);
                       Log.e("strRate4 "," is "+strRate4);
                       Log.e("strRate5 "," is "+strRate5);


                }while (cursor.moveToNext());   
            }
            cursor.close();


        }db.close();

    }
}
普拉莫德·亚达夫(Pramod Yadav)

从以下位置更改您的字符串查询:

String query = "SELECT performance_rate_one, performance_rate_two, performance_rate_three, performance_rate_four, performance_rate_five FROM performance WHERE task_name =" +task_name;

String query = "SELECT performance_rate_one, performance_rate_two, performance_rate_three, performance_rate_four, performance_rate_five FROM performance WHERE task_name ='" +task_name+"'";

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在2D ArrayList Android中从实时数据库检索字符串

从Android Studio中的SQLite数据库中以字符串形式检索数据

我如何验证/检查Firebase数据库(Android)中是否存在字符串值

如何在Firebase数据库中的字符串中的任意位置搜索-Android

在SQLite数据库中搜索特定字符串-Android SDK

如何从存储在数据库中的JSON字符串检索字段

如何在数据库表中搜索字符串并在laravel中检索匹配的列名

如何从sqlite数据库检索数据并显示在片段中

从android中的sqlite数据库获取字符串,日期,时间和整数

SQLite数据库中的大字符串对象

尝试通过删除某些字符串来格式化从sqlite3数据库检索的数据。我的代码有什么问题?

字符串SQLquery不会从SQLite数据库检索数据

在Android中以特定格式从数据库检索数据

在Android中从SQLite数据库创建字符串数组

如何在PHP中从数据库订购字符串格式?

尝试从数据库中的字符串检索数据

如何从数据库中检索日期格式数据

设置从数据库检索的值作为字符串到android中的评级栏

如何在SQLite数据库中搜索字符串

Android Studio,如何从Sqlite数据库中检索数据并将其显示到textview中?

如何从 xamarin 的本地数据库中检索字符串值?

如何从 Firebase 数据库中检索数据并将其存储为字符串?

如何使用字符串变量通过 Java 的 jdbc 从 SQLite 数据库中检索一行?

在sqlite数据库中搜索字符串

如何从 Android 应用程序的 SQLite 数据库中读取 sqlite 文本 - 字段(不是字符串)

在 MVC 中,如何从数据库中检索匹配包含数字的字符串序列号范围的记录?

如何从本地sqlite糖数据库android检索数据

如何从数据库中的字符串呈现 html

如何从查询字符串中检索node.js中数据库中的所有匹配数据?