进行SQLite数据添加一直报错

进行SQLite数据添加一直报错

package com.lemonade.sqlitedemo;

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
   private EditText nameEdt,ageEdt,idEdt;
   private RadioGroup genderGp;
   private String genderStr="男";
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       nameEdt= (EditText) findViewById(R.id.name_edt);
       ageEdt= (EditText) findViewById(R.id.age_edt);
       idEdt= (EditText) findViewById(R.id.id_edt);

       genderGp= (RadioGroup) findViewById(R.id.gender_rp);
       genderGp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){

           @Override
           public void onCheckedChanged(RadioGroup radioGroup, int i) {
               if (i==R.id.rb_male){
                   genderStr="男";

               }else{
                   genderStr="女";

               }
           }
       });


   }
   public  void operate(View v){
       switch (v.getId()){
           case R.id.insert_btn:

               SQLiteOpenHelper helper=new SQLiteOpenHelper(this,"stutest.db",null,1) {
                   @Override
                   public void onCreate(SQLiteDatabase sqLiteDatabase) {
                       Toast.makeText(MainActivity.this,"数据库创建",Toast.LENGTH_SHORT).show();


                   }

                   @Override
                   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                       Toast.makeText(MainActivity.this,"数据库更新",Toast.LENGTH_SHORT).show();

                   }
               };
               SQLiteDatabase db=helper.getReadableDatabase();
               String nameStr=nameEdt.getText().toString();
               String ageStr=ageEdt.getText().toString();
               String sql="insert into info_tb(name,age,gender)values('张三',23,'男')";
               db.execSQL(sql);

               break;
           case R.id.search_btn:

               break;
           case R.id.update_btn:

               break;

           case R.id.delete_btn:

               break;

       }
   }
}
http://img1.sycdn.imooc.com//climg/5a16a0830001375b11430241.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

SQLiteOpenHelper 的onCreate还没建表呢,你就对info_tb进行操作了。db.execSQL(sql)附近。祝:学习愉快

  • 老师,它这边表是早已经建好的啊
    2017-12-09 15:26:52
  • 你可以新建一个问答,具体去描述一下你所遇到的问题。
    2017-12-10 10:48:36
追梦不再迷茫 2017-12-09 15:21:46

你这边是怎么解决的 我也有类似的问题 

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师