我需要一种方法,使用“ SELECT * FROM table_name WHERE ID = getID”将数据库中的数据填充到TextView中。例如,我们现在在数据库中有一条记录,其ID等于“ 1”,我们可以输入在EditText中为“ 1”,然后我们必须单击“获取数据”按钮,然后程序应显示列ID等于“ 1”的数据库中的数据。
MainActivity
tkinter
DatabaseHelper(我现在要创建的方法名称为“ Test”)
public class MainActivity extends AppCompatActivity {
DatabaseHelper db;
EditText name, surname, marks, enterID;
Button addData, showData,queryButton;
TextView testTV;
String idString,nameString,surnameString,marksString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new DatabaseHelper(this);
name = (EditText) findViewById(R.id.nameET);
surname = (EditText) findViewById(R.id.surnameET);
marks = (EditText) findViewById(R.id.marksET);
enterID = (EditText) findViewById(R.id.enterIdET);
addData = (Button) findViewById(R.id.addDataBtn);
showData = (Button) findViewById(R.id.showDataBtn);
queryButton = (Button) findViewById(R.id.testBTN);
testTV = (TextView) findViewById(R.id.showID);
AddData();
showData();
queryTest();
}
public void queryTest() {
queryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String givenID = enterID.getText().toString();
Cursor cursor = db.Test(Integer.parseInt(enterID.getText().toString()));
if (cursor.moveToFirst()) {
do {
idString = "ID :" + cursor.getString(0);
nameString = "Name :" + cursor.getString(1);
surnameString = "Surname :" + cursor.getString(2);
marksString = "Marks :" + cursor.getString(3);
} while (cursor.moveToNext());
{
testTV.setText(idString + "\n" + nameString + "\n" + surnameString + "\n" + marksString);
}
}
}
});
}
public void AddData() {
addData.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted = db.insertData(name.getText().toString(),
surname.getText().toString(),
marks.getText().toString());
if (isInserted)
Toast.makeText(MainActivity.this, "Data Inserted", Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this, "Data not Inserted", Toast.LENGTH_LONG).show();
}
}
);
}
public void showData() {
showData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Cursor res = db.getAllData();
if (res.getCount() == 0) {
showMessage("Error", "No data");
return;
}
StringBuffer buffer = new StringBuffer();
while (res.moveToNext()) {
buffer.append("ID :" + res.getString(0) + "\n");
buffer.append("Name :" + res.getString(1) + "\n");
buffer.append("Surname :" + res.getString(2) + "\n");
buffer.append("Marks :" + res.getString(3) + "\n\n");
}
showMessage("Data", buffer.toString());
}
});
}
public void showMessage(String title, String message) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.show();
}
}
现在,当我单击“获取数据”按钮时,我将收到交流数据库(数据库是我的应用名称)已停止
答案 0 :(得分:0)
这是您代码的全部吗?如果是这样,似乎您还没有添加任何数据,这将导致访问数据的问题。
此外,您在Test(String ID)方法中的查询没有任何空格。本质上,您要发送的查询是这样的:
SELECTCOLUMNFROMTABLEWHERE ID = 7
应该是这样的:
从表ID = 7的表中选择列;
希望这对您有所帮助,祝您代码顺利!
答案 1 :(得分:0)
此行:
"SELECT "+COL_2+" FROM "+TABLE_NAME+" WHERE ID ="+getID+"''"
必须替换为:
"SELECT * FROM "+TABLE_NAME+" WHERE ID ="+getID