表中的数据插入在android

时间:2015-12-31 01:54:11

标签: android sqlite

我从不同的视图中检索一些数据,然后将数据插入表中。但每当我按下插入按钮时,应用程序崩溃并说“#34;应用程序停止响应"”。我花了2个小时就完成了这件事,我完全被困在这里了。这是我在android中使用Sqlite的第一个应用程序。

我有大约10个类,不同的变量来自不同的类,所以不能发布完整的java代码。 这是导致问题的java代码,logcat在if 中的execSQL语句中显示错误。

insTabVal 是Intent附带的Extra,它告诉在哪个表中放置数据, MainActivity 也不为空且 db 是SQLite数据库对象,它也是打开的。 SQL查询中的所有 Val变量都是要插入表中的值,来自不同的视图,它们也不是空的。

 btnInsert.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getValues();
            if(b.getString("insTableVal").equals("Donor")){
                MainActivity.db.execSQL("INSERT INTO Donor VALUES("+IdVal+","+NameVal+","+AgeVal+","+GenderVal+","+BGVal+");");
            }
            else if(b.getString("insTableVal").equals("Recipient")){
                MainActivity.db.execSQL("INSERT INTO Recipient VALUES("+IdVal+","+NameVal+","+AgeVal+","+GenderVal+","+BGVal+");");
            }
        }
    });

这是logcat

12-31 06:50:00.038 13562-13562/com.example.bilalrafique.bloodbankmanagementsystem E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                                Process: com.example.bilalrafique.bloodbankmanagementsystem, PID: 13562
                                                                                                java.lang.NullPointerException
                                                                                                    at com.example.bilalrafique.bloodbankmanagementsystem.DnRInsertion$1.onClick(DnRInsertion.java:34)
                                                                                                    at android.view.View.performClick(View.java:4466)
                                                                                                    at android.view.View$PerformClick.run(View.java:18537)
                                                                                                    at android.os.Handler.handleCallback(Handler.java:733)
                                                                                                    at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                                    at android.os.Looper.loop(Looper.java:136)
                                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5102)
                                                                                                    at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                                    at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                                                    at dalvik.system.NativeStart.main(Native Method)

Null指针异常发生在哪里。我无法弄清楚。

P.S What is a stack trace, and how can I use it to debug my application errors?我也检查了这个问题,但这解释了如何通过堆栈跟踪查找错误。我已经知道错误是在第34行,它是空指针异常。我想知道即使进入的所有变量都不为null,Insert语句如何抛出空指针异常。

先谢谢。

0 个答案:

没有答案