我正在尝试使用字符串缓冲区将SQLite数据库中的数据显示到警报对话框中,但是当我运行应用程序时,我收到了没有表中数据的消息。以下是我使用的两种方法(Users.java):
public void viewAll() {
btn2.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Cursor Res = db.getAllData();
if(Res.getCount() == 0) {
showMessage("Error" , "nothing found" );
return;
}
buffer = new StringBuffer();
while(Res.moveToNext()) { emailstring = Res.getString(0);
passstring = Res.getString(1);
buffer.append("password : "+ emailstring + "\n");
buffer.append("email : "+ passstring + "\n\n");
// when I run the app the alert dialog shows "password :" and "email :" just
}
data = buffer.toString();
showMessage("data", data);
}
} );
}
public void showMessage(String title,String Message)
{
AlertDialog.Builder builder = new AlertDialog.Builder(Users.this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(Message);
builder.show();
}
//getAllData() (in databasehelper.java) :
public Cursor getAllData() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor Res = db.rawQuery("SELECT * FROM " + TABLE_NAME , null);
return Res;
}
}
插入数据库:
public class Users extends Activity
{
EditText user;
EditText pass;
String email;
String pass2;
Button btn2;
Button btn;
StringBuffer buffer;
String data;
String emailstring;
String passstring;
DBhelper2 db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user);
user = (EditText) findViewById (R.id.emailadress);
pass = (EditText) findViewById (R.id.passkelme);
btn = (Button)findViewById(R.id.Button1);
btn2 = (Button)findViewById(R.id.button2);
email = user.getText().toString();
pass2 = pass.getText().toString();
addData();
viewAll();
}
public void addData() {
btn.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
db = new DBhelper2(getApplicationContext());
if(CheckifEmpty(user) == false && CheckifEmpty(pass) == false ) {
if(db.insertusers2(pass2, email) == true)
{ Toast.makeText(getApplicationContext(), "data saved succesfully" , Toast.LENGTH_LONG).show();
}
else { Toast.makeText(getApplicationContext(), "data saved not succesfully" , Toast.LENGTH_LONG).show();}
}
if(CheckifEmpty(user) == true || CheckifEmpty(pass) == true ) {
Toast.makeText(getApplicationContext(), "error you must fill the 2 fields " , Toast.LENGTH_LONG).show();
}
}
});
}
插入函数(databasehelper):
public boolean insertusers2( String P ,String E )
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentvalues = new ContentValues();
contentvalues.put(COLUMN_PASSWORD, P);
contentvalues.put(COLUMN_EMAIL, E);
if(db != null) {db.insert("tbldata", null, contentvalues);
return true;
}
return false;
}