当前位置:编程学习 > wap >>

android应用程序连接sqlite数据库出现找不到表

我利用sqlite manager创建了一个数据库,里面有一个数据库表User,现在把这个数据库导入到android应用程序中,结果运行之后,出现

找不到表格User,但我在DDMS中查看data/data文件中能查到MOI.db数据库,而我把这个数据库导出之后,数据库中明明就存在User表,各位大神  帮帮忙吧,我最近才开始学习android,实在是不知道怎么回事了。 android应用 sqlite 数据库 --------------------编程问答-------------------- 代碼貼出來看 --------------------编程问答--------------------
引用 1 楼 iltgcl 的回复:
代碼貼出來看
 
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与括号之间也应该加空格
--------------------编程问答--------------------
引用 3 楼 iltgcl 的回复:
你的创建表语句错了:
1 最后少分号
2 表名User与括号之间也应该加空格

这么做之后还是不行哈,各位大神 帮帮忙啊 --------------------编程问答-------------------- 出錯信息是什麼呢? --------------------编程问答-------------------- 解决了吗,?我也是这样
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,