Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
无法在我的android应用程序中的SQLite数据库中的表中插入数据_Android_Sqlite_Android Sqlite - Fatal编程技术网

无法在我的android应用程序中的SQLite数据库中的表中插入数据

无法在我的android应用程序中的SQLite数据库中的表中插入数据,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,请注意,我正在设计一个应用程序,它涉及在第一次运行时创建数据库,并在接下来的运行中打开数据库。因此,我在“onCreate()”方法中的“mainActivity”类中以以下方式处理它: 现在我有了另一个名为“eventdefinition”的类,其中我创建了“MainActivity”对象“ma”,然后我尝试在button click事件的表中插入值,如下所示: MainActivity ma=new MainActivity(); //line 63

请注意,我正在设计一个应用程序,它涉及在第一次运行时创建数据库,并在接下来的运行中打开数据库。因此,我在“onCreate()”方法中的“mainActivity”类中以以下方式处理它:

现在我有了另一个名为“eventdefinition”的类,其中我创建了“MainActivity”对象“ma”,然后我尝试在button click事件的表中插入值,如下所示:

              MainActivity ma=new MainActivity();     //line 63
              event=spinner.getSelectedItem().toString();   //line 64
              message=ed1.getText().toString();    //line 65
              ma.myDataBase.openDatabase("/data/data/org.mithil.autowish/databases/wishes", null,ma.myDataBase.OPEN_READWRITE);   //line 66
              ma.myDataBase.execSQL("INSERT INTO " +        
                        ma.tablename +
                        " Values ('"+ finalnumber +"','"+ name +"','"+ message +"','"+ event +"','"+ ldate +"');");
代码给了我NullPointerException,如下所示:

              MainActivity ma=new MainActivity();     //line 63
              event=spinner.getSelectedItem().toString();   //line 64
              message=ed1.getText().toString();    //line 65
              ma.myDataBase.openDatabase("/data/data/org.mithil.autowish/databases/wishes", null,ma.myDataBase.OPEN_READWRITE);   //line 66
              ma.myDataBase.execSQL("INSERT INTO " +        
                        ma.tablename +
                        " Values ('"+ finalnumber +"','"+ name +"','"+ message +"','"+ event +"','"+ ldate +"');");
05-10 11:03:30.992:E/AndroidRuntime(602):致命异常:主
05-10 11:03:30.992:E/AndroidRuntime(602):java.lang.NullPointerException
05-10 11:03:30.992:E/AndroidRuntime(602):在org.mithil.autowish.eventdefinition$2.onClick(eventdefinition.java:67)
05-10 11:03:30.992:E/AndroidRuntime(602):在android.view.view.performClick(view.java:3480)上
05-10 11:03:30.992:E/AndroidRuntime(602):在android.view.view$PerformClick.run(view.java:13983)
05-10 11:03:30.992:E/AndroidRuntime(602):在android.os.Handler.handleCallback(Handler.java:605)
05-10 11:03:30.992:E/AndroidRuntime(602):在android.os.Handler.dispatchMessage(Handler.java:92)上
05-10 11:03:30.992:E/AndroidRuntime(602):在android.os.Looper.loop(Looper.java:137)
05-10 11:03:30.992:E/AndroidRuntime(602):位于android.app.ActivityThread.main(ActivityThread.java:4340)
05-10 11:03:30.992:E/AndroidRuntime(602):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-10 11:03:30.992:E/AndroidRuntime(602):在java.lang.reflect.Method.invoke(Method.java:511)
05-10 11:03:30.992:E/AndroidRuntime(602):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-10 11:03:30.992:E/AndroidRuntime(602):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-10 11:03:30.992:E/AndroidRuntime(602):在dalvik.system.NativeStart.main(本机方法)

请让我知道我哪里做错了。任何帮助都将非常重要。提前谢谢


关于

要在Android中处理所有与数据库相关的查询,您可以在这里进行。它告诉您如何创建/删除表,还告诉您如何从android数据库迭代/插入/删除/更新数据


我希望它能帮助你。

你需要把它与你的活动分开。最简单的方法是实现扩展SQLiteOpenHelper类的单个dao

这里是Java文档

此类具有内置逻辑以创建新数据库或根据版本更新数据库,因此不必在活动中重新实现逻辑来创建数据库


您只需实现onCreate(db)方法和onUpdate(db,oldVer,newVer)方法。

只需使用ORMLight,Android中的db工作是一件痛苦的事情,ORMLite会让它变得更容易。您的错误是
java.lang.NullPointerException
意味着在这里
OnClick获得空值(eventdefinition.java:67
DEBUG once使用一些调试语句检查代码,看看哪个值为null。添加Log.d(“finalNumber=“+finalNumber”);等等。感谢大家的建议@Mars:我会立即尝试你的方法,并让你知道结果。感谢错误是在你的onClick中的某个地方出现了nullpointerexception,与数据库无关。这个答案实际上并不坏,可能只是不完整——可以理解,因为我们看不到OP试图实现的全部内容完成。我怀疑他的代码结构还需要做更多的修改。一张赞成票可以取消其他人的反对票。