我想在数据库中添加一个表,并希望添加一个列并保存信息并在另一个按钮上检索它,如果表已经存在,它只会插入信息,下面是我使用的代码,但是给出了错误。
Button insert_info=(Button)findViewById(R.id.button1);
insert_info.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db;
try
{
final EditText txt_field1=(EditText)findViewById(R.id.editText1);
String Per_Name=txt_field1.getText().toString();
db=openOrCreateDatabase("sez.db",SQLiteDatabase.CREATE_IF_NECESSARY,null);
String Query_createTable="CREATE TABLE sezInformation(Name VARCHAR(100))";
String Query_insert="insert into sezInformation(Name) values("+Per_Name+")";
db.execSQL(Query_insert);
}
catch(Exception e)
{
Toast.makeText(WelomePerson.this, "ERROR"+e.toString(), Toast.LENGTH_LONG).show();
}
}
});
每当我输入值代表khan
或布局Edittext
字段中的任何其他内容时,点击按钮就会显示
No such column :khan while insert into sezInformation (Name) values(khan)
还请告诉我如何在文本视图中检索相同的已保存数据。
答案 0 :(得分:0)
使用CREATE TABLE IF NOT EXISTS
代替CREATE TABLE
另外一定要使用2个不同的execSQL()
命令(一个用来创建表,一个用于插入),或者它不会工作,因为你不能一次执行多个命令< /强>
答案 1 :(得分:0)
在SQL中,字符串文字应位于'single quotes'
中。否则,它们将被视为列名称等标识符。
更好的是,使用参数:
db.execSQL("insert into sezInformation(Name) values(?)",
new Object[] { Per_Name });