我的应用程序中的insert语句出现问题。
public void insert() {
ContentValues cv = new ContentValues();
cv.put(Training_table.KEY_ACTIVITY,"Swimming");
}
我知道我必须添加一个.insert行,但我不能写它,我试过这个解决方案无济于事:
public void insertRecord() {
SQLiteDatabase db = ourHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(Training_table.KEY_ACTIVITY,"Swimming");
db.insert("Get info from db", null, cv);
db.close(); }
我不确定在db.insert ??
之后第一个参数应该是什么以下是getAllData方法,该方法仅用于检索插入"游泳"进入KEY_ACTIVITY行并在文本视图中显示它。 (这个课程在下面进一步说明。
public String getAllData(){
//SQLiteDatabase db = ourHelper.getWritableDatabase();
String[] columns = {KEY_ROWID, KEY_ACTIVITY};
Cursor cursor=ourDatabase.query(Training_table.DATABASE_TABLE,columns,null,null,null,null,null);
StringBuffer buffer=new StringBuffer();
//Cursor cursor = ourDatabase.query(DATABASE_TABLE,columns,null,null,null,null,null);
while(cursor.moveToNext())
{
int cid=cursor.getInt(0);
String activity=cursor.getString(1);
buffer.append(cid+" "+activity+"\n");
}
return buffer.toString();
}
下面是我调用方法的类,并将xml文本视图中的文本设置为getAllData字符串中的内容。 它没有更新文本视图,它只是空白而且没有显示任何错误。你能看到代码的任何突出问题吗?
public class Training_table_view extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.training_table_view);
TextView tv = (TextView)findViewById(R.id.tvTTinfo);//setting up reference
Button bv = (Button)findViewById(R.id.bViewDetails);
Training_table info = new Training_table(this);//create training table
info.open();//open Training table class
//info.insertRecord();
info.insert();//insert data (currently PK id and activity name
String data = info.getAllData();//return string from get data method
info.close();
tv.setText(data);//set text view to the string we got data from
}//onCreate
} // Training_table_view类
我将非常感谢任何帮助或建议,因为我知道解决方案是非常微不足道的。亲切的问候, 康纳
答案 0 :(得分:2)
db.insert()中的第一个参数是保存数据的表名。您可以轻松使用String Training_table.DATABASE_TABLE:
db.insert(Training_table.DATABASE_TABLE, null, cv);
所有方法" insertRecord()":
public void insertRecord() {
SQLiteDatabase db = ourHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(Training_table.KEY_ACTIVITY,"Swimming");
db.insert(Training_table.DATABASE_TABLE, null, cv);
db.close();
}
请确保您调用方法" insertRecord()"而不是方法" insert()"
答案 1 :(得分:0)
db.insert()中的第一个参数是表名为
insert(String table, String nullColumnHack, ContentValues values)
所以改变
db.insert("Get info from db", null, cv);
到
db.insert(TableName, null, cv);
注意:将 TableName 替换为数据库表
有关详细信息,请参阅SQLite insert