android创建数据库表问题不能解决!!求大神帮忙
最近在编写关于成绩录入的一个程序,需要在一个数据库myTest.db里创建两个表,一个是学生信息表t_users,另一个是学生成绩表t_cj,学生需要根据学生信息表进行登陆,教师将成绩录入学生成绩表。但是程序总有问题,将成绩输入好单击保存就是停止运行,想请大神帮帮忙,看问题出在哪!
下面程序是DBHelper.java程序,创建数据库和两个表的程序
package com.bdu.managesys;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;
public class DBHelper extends SQLiteOpenHelper{
private static final int DB_VERSION =6;
private static final String TAG=“DBHelper”;
private static final String DB_NAME =“myTest.db”;
private static final String TABLE_NAME =“t_users”;
private static final String TABLE_NAME1 =“t_cj”;
public DBHelper(Context context, String name, CursorFactory factory, int version)
{
super(context, name, factory, version);
}
public DBHelper(Context context){ this(context,DB_NAME,null,DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub Log.v(TAG, "onCreate"); db.execSQL( "Create Table If Not Exists " + TABLE_NAME + "(id text Primary Key,"//id + " userName text,"//用户名 + " passWord text,"//密码 + " userNum text,"//学号 + " className text,"//班级名称 + " userType text"//用户类型0是教师,1是学生。 + ")"); db.execSQL( "Create Table If Not Exists " + TABLE_NAME1 + "(id text Primary Key,"//id + " userName text,"//用户名 + " userNum text,"//学号 + " className text,"//班级名称 + " math text"//数学成绩。 + " chinese text"//语文成绩。 + " english text"//英语成绩。 + ")"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.v(TAG, "onUpgrade"); }
}
下面是成绩录入CjActivity.java的程序:
package com.bdu.managesys;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import student.Student;
import studentdbhelper.StudentDBHelper;
import tablecontanst.TableContanst;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
public class CjActivity extends Activity implements OnClickListener {
private TextView idText;
private EditText nameText;
private EditText xuehaoText;
private EditText banjiText;
private EditText mathText;
private EditText chineseText;
private EditText englishText;
private Button restoreButton;
private String sex;
private EditText dataText;
private Button resetButton;
private DBHelper dbh;
private SQLiteDatabase sqldb;
private SQLiteDatabase db;
private Context ctx;
private Intent intent;
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cj_layout); resetButton = (Button) findViewById(R.id.btn_clear); resetButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish();//这个是关键 } }); initView(); dbh = new DBHelper(this); sqldb= dbh.getWritableDatabase(); } public void initView(){ idText = (TextView) findViewById(R.id.tv_stu_id); nameText = (EditText) findViewById(R.id.et_name); xuehaoText = (EditText) findViewById(R.id.et_xuehao); banjiText = (EditText) findViewById(R.id.et_banji); mathText = (EditText) findViewById(R.id.et_math); chineseText = (EditText) findViewById(R.id.et_chinese); englishText = (EditText) findViewById(R.id.et_english); restoreButton = (Button) findViewById(R.id.btn_save); resetButton = (Button) findViewById(R.id.btn_clear); } public void bc(View v) { //bc是保存按钮的onClick方法 String userName = nameText.getText().toString(); String xuehao = xuehaoText.getText().toString(); String banji =banjiText.getText().toString(); String math = mathText.getText().toString(); String chinese = chineseText.getText().toString(); String english = englishText.getText().toString(); Date d = new Date(); long id = d.getTime(); String sql = "Insert Into t_cj" + "(id,userName,userNum,className,math,chinese,english) " + "values("+id+",'"+userName+"','"+xuehao+"'," + "'"+banji+"','"+math+"','"+chinese+"','"+english+"')"; sqldb.execSQL(sql.toString()); Log.e("sql语句", sql); Toast.makeText(this,"录入成功", Toast.LENGTH_LONG).show(); sqldb.close();//关闭数据库对象 } @Override public void onClick(View arg0) { // TODO Auto-generated method stub }
}
奇怪的是我的t_cj表的字段是有残缺的,而且myTest.db数据库里只显示t_cj一个表。
- Android Studio出现不能创建Android项目的问题的解决办法
- Android Studio出现不能创建Android项目的问题的解决办法
- 解决Hibernate不能自动创建数据库表的问题
- Windows Server 2008 R2 X64安装Oracle 10g R2后不能创建数据库问题解决办法
- 在Oracle RAC环境下创建数据库时提示不能验证ASMSNMP密码问题的解决(ORA-01017)
- Django连接数据库,解决Django migrate No changes detected 不能创建表的问题
- 解决配置 SQL Server 2008 的若干问题(安装失败、不能创建数据库、Express 版本无默认实例)
- 怎样解决数据库 Navicat 8for MySQL中不能连接到本地数据库的问题啊??请大虾们帮忙
- Android support library 不能创建项目 的问题解决办法
- 解决配置 SQL Server 2008 的若干问题(安装失败、不能创建数据库等)
- 解决DB2远程不能读取到数据库列表的问题
- Visual Studio 2008不能创建数据库连接出现:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。系统找不到指定的文件的解决办法
- 解决sql2008 r2 还原数据库文件不能删除用户的问题
- 解决“Automation 服务器不能创建对象”的问题!
- 解决Android 2.2自带Camera不能在模拟器中运行的问题
- android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
- Android中ListView点击和ListView的item里面的Button或ImageView不能同时生效问题的解决
- Visual Studio 2008不能创建数据库连接出现:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。系统找不到指定的文件的解决办法
- 已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_E表中。请问用什么办法解决这一问题?如果又碰到不能互访的问题时,又用什么办法解决?
- 解决讨厌的VS2008不能打开vs2010所创建的项目问题