Also ich versuche, einen Cursor zu meiner Klasse zu implementieren, so dass ich mein Datagrid ausfüllen kann (nicht sicher, ob dies der richtige Weg ist, wenn ich für SP und vorbereitete Anweisung aufrufbar verwenden muss) die ich gemacht von diesem guide here aber ich bekommt einCursor implementieren auf PreparedStatement in AsyncTask
DataGridActivity.Itemnumber nicht abstrakt ist und überschreibt nicht abstrakte Methode respond (Bundle) in Cursor
ich bin nicht sicher, wie die abstrakte Methode zu implementieren hier als ich verwende normalerweise getstring Methode für meine vorbereiteten Aussagen fragen, ob es irgendwie ich, dass stattdessen tun könnte mein Gitter anstatt den Cursor
public class Itemnumber extends AsyncTask<String,String,String> implements Cursor {
String z = "";
@Override
protected void onPreExecute() {
}
@Override
protected void onPostExecute(String r) {
}
@Override
protected String doInBackground(String... params) {
try {
Connection con = connectionClass.CONN();
if (con == null) {
z = "Error in connection with SQL server";
} else {
PreparedStatement preparedStatement = null;
String sqli = "select ID,ItemNumber,Trashed,Sold from [file].[Item] where [ItemNumber] =?";
preparedStatement = con.prepareStatement(sqli);
preparedStatement.setString(1, "test");
ResultSet rs = preparedStatement.executeQuery();
if (rs.next()) {
} else {
}
}
} catch (Exception ex) {
z = "Exceptions";
}
return z;
}
@Override
public Bundle respond(Bundle extras){
moveToFirst();
return Bundle.EMPTY;
}
}
Meine Datagrid Aktivitätsklasse
Cursor csr = new Itemnumber();
//create DataTable object
DataTable dtDataSource = new DataTable();
//define column
dtDataSource.addAllColumns(new String[]{"column_1", "column_2","column_3", "column_4});
//create DataRow
DataTable.DataRow drRow;
//populate data from cursor into DataSource
if(csr.moveToFirst()){
do{
drRow = dtDataSource.newRow();
drRow.set("column_1", csr.getString(csr.getColumnIndex("field_1")));
drRow.set("column_2", csr.getString(csr.getColumnIndex("field_2")));
drRow.set("column_2", csr.getString(csr.getColumnIndex("field_3")));
drRow.set("column_4", csr.getString(csr.getColumnIndex("field_4")));
dtDataSource.add(drRow);
} while(csr.moveToNext());
csr.close();
}
/**
* Prepare the DataGrid
*/
//initialize DataGrid
DataGrid dg = (DataGrid)findViewById(R.id.datagrid);
//define column style, bond each DataGrid column by DataTable column
dg.addColumnStyles(new DataGrid.ColumnStyle[]{
new DataGrid.ColumnStyle(getString(R.string.ID), "column_1", 80),
new DataGrid.ColumnStyle(getString(R.string.ItemNumber), "column_2", 120),
new DataGrid.ColumnStyle(getString(R.string.Trashed), "column_3", 100),
new DataGrid.ColumnStyle(getString(R.string.Sold), "column_4", 150)
});
//set the DataTable as source
dg.setDataSource(dtDataSource);
//generate the DataGrid
dg.refresh();
ja zu sein, etwas schien das ist der Import android.database.Cursor; –