-1
我已经在sqlite中编写了一个查询以从特定列中获取不同的值,但是我在里面的微调器中获取的值并不是独特的,当我删除_id从查询我得到一个错误,说“列_id不存在”,但是当我在查询中包含_id微调获取填充值但不明显。使用独特的特定列在sqlite查询中不显示不同的值
public Cursor getAccName(String fromdate,String todate){
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("Select DISTINCT
"+DbListHelper.ACCOUNT_NAME+","+DbListHelper.UID+
" from "+DbListHelper.TABLE_NAME_FINALDATA+" where
"+DbListHelper.EFFECTIVE_DATE+" between '" +
fromdate + "' and '"+ todate +"'", null);
return cursor;
}
view_records.java
listHelper = new SqliteVehicleDetails(getBaseContext());
listHelper.open(getBaseContext());
etFromDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_PICKER_ID);
}
});
etTodate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_PICKER_ID_1);
}
});
@Override
@Deprecated
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_PICKER_ID:
return new DatePickerDialog(this, datePickerListener, year, month,
day);
case DATE_PICKER_ID_1:
return new DatePickerDialog(this, datePickerListener1, year1,
month1, day1);
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener = new
DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
String dt;
year = selectedYear;
month = selectedMonth + 1;
day = selectedDay;
try {
dt = day + "/" + month + "/" + year;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date currentDt = null;
currentDt = sdf.parse(dt);
String d = sdf.format(currentDt);
etFromDate.setText(d);
} catch (Exception e) {
e.printStackTrace();
}
}
};
private DatePickerDialog.OnDateSetListener datePickerListener1 = new
DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
String dt;
year1 = selectedYear;
month1 = selectedMonth + 1;
day1 = selectedDay;
try {
dt = day1 + "/" + month1 + "/" + year1;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date currentDt = null;
currentDt = sdf.parse(dt);
String d = sdf.format(currentDt);
etTodate.setText(d);
} catch (Exception e) {
e.printStackTrace();
}
}
};
btnShow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
cursor = listHelper.getFinalData();
if(cursor.moveToFirst()){
fromDt = etFromDate.getText().toString();
toDt = etTodate.getText().toString();
cursor = listHelper.getAccName(fromDt,toDt);
int[] to5 = new int[] { android.R.id.text1 };
String[] from5 = new String[] { DbListHelper.ACCOUNT_NAME };
adapter5 = new SimpleCursorAdapter(
getBaseContext(),
android.R.layout.simple_list_item_1, cursor,
from5, to5);
adapter5.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spinnerAccountName.setAdapter(adapter5);
}
我想知道为什么不同的关键字不工作,为什么它需要在查询中包括_id? 谢谢
这是没有必要包括_id列,你可能得到错误,因为您将尝试从光标获取_id列的值。在选择查询中使用_id时,由于_id是主键,因此帐户名称和_id的组合总是不同的。 –
我已经包含代码先生,我从btnshow点击光标获取值 –