android应用程序连接sqlite数据库出现找不到表 android应用sqlite数据库 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class MainActivity extends Activity { public EditText useredittext,pwdedittext; public Button loginbutton,cancelbutton; public TextView textview01; public Spinner spinner01; String username,pwd; Boolean result; private DBOpenHelper dbhelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loginbutton=(Button)findViewById(R.id.loginbutton); cancelbutton=(Button)findViewById(R.id.cancelbutton); useredittext=(EditText)findViewById(R.id.userEditText); pwdedittext=(EditText)findViewById(R.id.pwdEditText); spinner01=(Spinner)findViewById(R.id.spinner01); textview01=(TextView)findViewById(R.id.textview01); this.setTitle("用户登陆界面"); final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.shopname,android.R.layout.simple_spinner_item); //设置Spinner每个条目的显示样式 //3.声明一个ArrayAdapter并获取对象,用于配置Spinner显示的信息。 //对应参数说明:1.上下文变量;2.要显示的字符串Array;3.Spinner的显示样式 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //为spinner绑定适配器,书写标题信息,绑定监听事件。 spinner01.setAdapter(adapter); spinner01.setPrompt("信息:"); spinner01.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //获取所选择的地址 textview01.setText("您盘点的门店是:"+adapter.getItem(arg2).toString()); } public void onNothingSelected(AdapterView<?> arg0) { textview01.setText("您还没有选中"); } }); //设置取消按钮监听器 cancelbutton.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ //结束当前activity finish(); } }); //设置登录按钮监听器 loginbutton.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ //判断验证 if(validate()){ //判断是否登陆成功 if(login()){ //启动activity Intent intent=new Intent(MainActivity.this,ScanActivity.class); startActivity(intent); }else{ //显示对话框 showDialog("用户名称或者密码错误,请重新输入!"); } } } }); } protected void showDialog(String msg) { // TODO Auto-generated method stub AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setMessage(msg) .setCancelable(false) .setPositiveButton("确定",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id){ } }); AlertDialog alert=builder.create(); alert.show(); } private boolean validate() { // TODO Auto-generated method stub username=useredittext.getText().toString(); if(username.equals("")){ showDialog("用户名称是必填项!"); return false; } pwd=pwdedittext.getText().toString(); if(pwd.equals("")){ showDialog("用户密码是必填项!"); return false; } if(textview01.equals("")){ showDialog("请选择要盘点的门店"); return false; } return true; } //登录方法 protected boolean login() { // TODO Auto-generated method stub //获得用户名称 username=useredittext.getText().toString(); //获得用户密码 pwd=pwdedittext.getText().toString(); //查询返回结果 result=query(username,pwd); //对结果进行判断 if(result) { return true; } else { return false; } } //查询 private boolean query(String uname, String password) { // TODO Auto-generated method stub dbhelper=new DBOpenHelper(this); SQLiteDatabase sdb=dbhelper.getReadableDatabase(); //查询获得游标 Cursor result=sdb.query("User",null,null,null,null,null,null,null); //判断游标是否为空 if(result.moveToFirst()) { int i; for(i=0;i<result.getCount();i++) { result.move(i); String name=result.getString(1); String inventory=result.getString(2); if(name.equals("uname")&&inventory.equals("password")) { return true; } } if(i==result.getCount()) return false; } return true ; } }然后DBOpenHelper类的代码如下public class DBOpenHelper extends SQLiteOpenHelper { //数据库名称 private static final String DB_NAME="MOI.db"; //表名称 private static final String TBL_NAME="User"; SQLiteDatabase db; //构造方法 public DBOpenHelper(Context c){ super(c,DB_NAME,null,1); } @Override public void onCreate(SQLiteDatabase db){ //创建表SQL语句 final String CREATE_TBL=" create table " +" User(_id integer primary key autoincrement,userno text,username text) "; db.execSQL(CREATE_TBL); } //插入方法 public void insert(ContentValues values) { //获得SQLiteDatabase 实例 SQLiteDatabase db=getWritableDatabase(); //插入 db.insert(TBL_NAME, null, values); db.close(); } //查询方法 public Cursor query(){ //获得SQLiteDatabase 实例 SQLiteDatabase db=getWritableDatabase(); Cursor c=db.query(TBL_NAME, null, null, null, null, null, null); return c; } //删除方法 public void delete(int id){ if(db==null) //获得SQLiteDatabase 实例 db=getWritableDatabase(); db.delete(TBL_NAME, "_id=?", new String[]{String.valueOf(id)}); } public void close(){ if(db!=null) db.close(); } @Override public void onUpgrade(SQLiteDatabase db,int oldversion,int newversion){ }}还望大侠给看一下哈,万分感谢哈。 你的创建表语句错了:1 最后少分号2 表名User与括号之间也应该加空格 下面的这段android xml布局文件怎么转换成java对象 [求助]Skia 径向渐变 怎么把默认的黑背景换成背景图片? 请问一个email转发的问题 如何将android设备作成服务端 ListVIew第一item里的Button状态的问题 ViewGroup add子view后,当前的viewgroup的宽度没有立即变化!! 求助关于socket编程的问题 ,都是菜鸟过来的帮帮忙 Android UI设计:一个文本框位置的设置 如何在recycleview中嵌套recycleview andriod的内存管理问题 如何在开发中途替换数据库
public class MainActivity extends Activity {
public EditText useredittext,pwdedittext;
public Button loginbutton,cancelbutton;
public TextView textview01;
public Spinner spinner01;
String username,pwd;
Boolean result;
private DBOpenHelper dbhelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loginbutton=(Button)findViewById(R.id.loginbutton);
cancelbutton=(Button)findViewById(R.id.cancelbutton);
useredittext=(EditText)findViewById(R.id.userEditText);
pwdedittext=(EditText)findViewById(R.id.pwdEditText);
spinner01=(Spinner)findViewById(R.id.spinner01);
textview01=(TextView)findViewById(R.id.textview01);
this.setTitle("用户登陆界面");
final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.shopname,android.R.layout.simple_spinner_item);
//设置Spinner每个条目的显示样式
//3.声明一个ArrayAdapter并获取对象,用于配置Spinner显示的信息。
//对应参数说明:1.上下文变量;2.要显示的字符串Array;3.Spinner的显示样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//为spinner绑定适配器,书写标题信息,绑定监听事件。
spinner01.setAdapter(adapter);
spinner01.setPrompt("信息:");
spinner01.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
//获取所选择的地址
textview01.setText("您盘点的门店是:"+adapter.getItem(arg2).toString());
}
public void onNothingSelected(AdapterView<?> arg0) {
textview01.setText("您还没有选中");
} });
//设置取消按钮监听器
cancelbutton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
//结束当前activity
finish();
}
});
//设置登录按钮监听器
loginbutton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
//判断验证
if(validate()){
//判断是否登陆成功
if(login()){
//启动activity
Intent intent=new Intent(MainActivity.this,ScanActivity.class);
startActivity(intent);
}else{
//显示对话框
showDialog("用户名称或者密码错误,请重新输入!");
}
}
}
});
}
protected void showDialog(String msg) {
// TODO Auto-generated method stub
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage(msg)
.setCancelable(false)
.setPositiveButton("确定",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id){
}
});
AlertDialog alert=builder.create();
alert.show();
} private boolean validate() {
// TODO Auto-generated method stub
username=useredittext.getText().toString();
if(username.equals("")){
showDialog("用户名称是必填项!");
return false;
}
pwd=pwdedittext.getText().toString();
if(pwd.equals("")){
showDialog("用户密码是必填项!");
return false;
}
if(textview01.equals("")){
showDialog("请选择要盘点的门店");
return false;
}
return true;
}
//登录方法
protected boolean login() {
// TODO Auto-generated method stub
//获得用户名称
username=useredittext.getText().toString();
//获得用户密码
pwd=pwdedittext.getText().toString();
//查询返回结果
result=query(username,pwd);
//对结果进行判断
if(result)
{
return true;
}
else
{
return false;
}
}
//查询
private boolean query(String uname, String password) {
// TODO Auto-generated method stub
dbhelper=new DBOpenHelper(this);
SQLiteDatabase sdb=dbhelper.getReadableDatabase();
//查询获得游标
Cursor result=sdb.query("User",null,null,null,null,null,null,null);
//判断游标是否为空
if(result.moveToFirst())
{
int i;
for(i=0;i<result.getCount();i++)
{
result.move(i);
String name=result.getString(1);
String inventory=result.getString(2);
if(name.equals("uname")&&inventory.equals("password"))
{
return true;
}
}
if(i==result.getCount())
return false;
}
return true ;
} }
然后DBOpenHelper类的代码如下
public class DBOpenHelper extends SQLiteOpenHelper {
//数据库名称
private static final String DB_NAME="MOI.db";
//表名称
private static final String TBL_NAME="User";
SQLiteDatabase db;
//构造方法
public DBOpenHelper(Context c){
super(c,DB_NAME,null,1);
}
@Override
public void onCreate(SQLiteDatabase db){
//创建表SQL语句
final String CREATE_TBL=" create table "
+" User(_id integer primary key autoincrement,userno text,username text) ";
db.execSQL(CREATE_TBL);
}
//插入方法
public void insert(ContentValues values)
{
//获得SQLiteDatabase 实例
SQLiteDatabase db=getWritableDatabase();
//插入
db.insert(TBL_NAME, null, values);
db.close();
}
//查询方法
public Cursor query(){
//获得SQLiteDatabase 实例
SQLiteDatabase db=getWritableDatabase();
Cursor c=db.query(TBL_NAME, null, null, null, null, null, null);
return c;
}
//删除方法
public void delete(int id){
if(db==null)
//获得SQLiteDatabase 实例
db=getWritableDatabase();
db.delete(TBL_NAME, "_id=?", new String[]{String.valueOf(id)});
}
public void close(){
if(db!=null)
db.close();
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldversion,int newversion){
}}
还望大侠给看一下哈,万分感谢哈。
1 最后少分号
2 表名User与括号之间也应该加空格