首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

这个SQLite程序哪里出错了,如何还是有错

2012-04-20 
这个SQLite程序哪里出错了,怎么还是有错?package com.haii.androidimport android.app.Activityimport a

这个SQLite程序哪里出错了,怎么还是有错?
package com.haii.android;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;

public class SQLiteTestActivity extends Activity {
  OnClickListener listener_add=null;
  OnClickListener listener_update=null;
  OnClickListener listener_delete=null;
  OnClickListener listener_clear=null;
  Button button_add;
  Button button_update;
  Button button_delete;
  Button button_clear;
  DBConnection helper;
  public int id_this;
  public interface UserSchema{
String TABLE_NAME="Users";
String ID="_id";
String USER_NAME="user_name";
String ADDRESS="address";
String TELEPHONE="telephone";
String MAIL_ADDRESS="mail_address";
  }
  /** Called when the activity is first created. */
  @Override
  public void onCreate(final Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // getIntent().setData(Uri.parse("content://com.haii.provider.testprovider"));
  // final Uri uri_test=getIntent().getData();
  setContentView(R.layout.main);
  final EditText mEditText01=(EditText)findViewById(R.id.editText1);
  final EditText mEditText02=(EditText)findViewById(R.id.editText2);
  final EditText mEditText03=(EditText)findViewById(R.id.editText3);
  final EditText mEditText04=(EditText)findViewById(R.id.editText4);
  helper=new DBConnection(this);
  final SQLiteDatabase db=helper.getWritableDatabase();
  final String[] FROM={
  UserSchema.ID,
  UserSchema.USER_NAME,
  UserSchema.TELEPHONE,
  UserSchema.ADDRESS,
  UserSchema.MAIL_ADDRESS
  };
  Cursor c=db.query(UserSchema.TABLE_NAME, new String[]{UserSchema.USER_NAME}, null,null,null,null,null);
  // Cursor c=managedQuery(uri_test,new String[]{UserSchema.USER_NAME},null,null,null);
  c.moveToFirst();
  CharSequence[] list=new CharSequence[c.getCount()];
  for(int i=0;i<list.length;i++){
  list[i]=c.getString(0);
  c.moveToNext();
  }
  c.close();
  Spinner spinner=(Spinner)findViewById(R.id.spinner1); 
  spinner.setAdapter(new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,list));
  spinner.setOnItemSelectedListener(new OnItemSelectedListener(){

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String user_name=((Spinner)parent).getSelectedItem().toString();
//Cursor c=managedQuery(uri_test,FROM,"user_name='"+user_name+"'",null,null);

Cursor c=db.query("Users", FROM, "user_name='"+user_name+"'", null,null,null,null);
c.moveToFirst();
id_this=Integer.parseInt(c.getString(0));
String user_name_this=c.getString(1);
String telephone_this=c.getString(2);
String address_this=c.getString(3);


String mail_address_this=c.getString(4);
c.close();
mEditText01.setText(user_name_this);
mEditText01.setText(telephone_this);
mEditText03.setText(address_this);
mEditText04.setText(mail_address_this);

// TODO Auto-generated method stub

}

@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub

}
 
  });
  listener_add=new OnClickListener(){

@Override
public void onClick(View v) {
ContentValues values=new ContentValues();
values.put(UserSchema.USER_NAME, mEditText01.getText().toString());
values.put(UserSchema.TELEPHONE, mEditText02.getText().toString());
values.put(UserSchema.ADDRESS, mEditText03.getText().toString());
values.put(UserSchema.MAIL_ADDRESS, mEditText04.getText().toString());// TODO Auto-generated method stub

SQLiteDatabase db=helper.getWritableDatabase();
db.insert(UserSchema.TABLE_NAME, null, values);
db.close();
//getContentResolver().insert(uri_test, values);
onCreate(savedInstanceState);
}
 
  };
  listener_update=new OnClickListener(){

@Override
public void onClick(View v) {
ContentValues values=new ContentValues();
values.put(UserSchema.USER_NAME, mEditText01.getText().toString());
values.put(UserSchema.TELEPHONE, mEditText02.getText().toString());
values.put(UserSchema.ADDRESS, mEditText03.getText().toString());
values.put(UserSchema.MAIL_ADDRESS, mEditText04.getText().toString());
String where=UserSchema.ID+" = "+id_this;// TODO Auto-generated method stub

SQLiteDatabase db=helper.getWritableDatabase();
db.update(UserSchema.TABLE_NAME, values, where, null);
db.close();//getContentResolver().update(uri_test, values, where, null);
onCreate(savedInstanceState);// TODO Auto-generated method stub

}
 
  };
  listener_delete=new OnClickListener(){

@Override
public void onClick(View v) {
String where=UserSchema.ID+" = "+id_this;
SQLiteDatabase db=helper.getWritableDatabase();
db.delete(UserSchema.TABLE_NAME, where, null);
db.close();
///getContentResolver().delete(uri_test, where,null);// TODO Auto-generated method stub
onCreate(savedInstanceState);
}
 
  };
  listener_clear=new OnClickListener(){

@Override
public void onClick(View v) {
mEditText01.setText("");
mEditText02.setText("");
mEditText03.setText("");
mEditText04.setText("");
// TODO Auto-generated method stub

}
 
  };
  button_add=(Button)findViewById(R.id.button1);
  button_add.setOnClickListener(listener_add);
  button_update=(Button)findViewById(R.id.button2);
  button_update.setOnClickListener(listener_update);
  button_delete=(Button)findViewById(R.id.button3);
  button_delete.setOnClickListener(listener_delete);
  button_clear=(Button)findViewById(R.id.button4);
  button_clear.setOnClickListener(listener_clear);
  }
  public static class DBConnection extends SQLiteOpenHelper {
  private static final String DATABASE_NAME="PhoneBookDB";
  private static final int DATABASE_VERSION=1;
  public DBConnection(Context ctx) {
  super(ctx,DATABASE_NAME,null,DATABASE_VERSION);
  // TODO Auto-generated constructor stub


  }

  @Override
  public void onCreate(SQLiteDatabase db) {
  String sql="CREATE TABLE "+UserSchema.TABLE_NAME+ " ("+UserSchema.ID+" INTEGER primary key autoincrement, "+UserSchema.TABLE_NAME+" text not null, "
  +UserSchema.TELEPHONE+" text not null, "
  +UserSchema.ADDRESS+" text not null, "
  +UserSchema.MAIL_ADDRESS+" text not null "+");";
  db.execSQL(sql);// TODO Auto-generated method stub

  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // TODO Auto-generated method stub

  }

  }

}



[解决办法]

探讨

什么叫log?引用:

贴LOG吧,大略看了一下代码,大方向没有什么问题,细节问题没有LOG太难找了。

[解决办法]
table Users has no column named user_name
检查下建表语句,Users是否有user_name这样一列。

热点排行