java datahelper_Java Android。在DatabaseHelper中执行查询时出错

我想从sqlite中退出所有与Spinner中选择的产品具有相同市场的产品

我从databasehelper的函数是:

public String getSelectedData(String market) {

// TODO Auto-generated method stub

String[] columns = new String[]{KEY_PRODNAME, KEY_PRODAMOUNT ,KEY_AMOUNTTYPE, KEY_MARKETID};

Cursor c= myDatabase.query(DATABASE_PRODTABLE, columns, KEY_MARKETID + "=" + market, null, null, null, null);

String result = "";

//int iRow = c.getColumnIndex(KEY_PRODROWID);

int iName = c.getColumnIndex(KEY_PRODNAME);

int iAmount = c.getColumnIndex(KEY_PRODAMOUNT);

int iAmountType = c.getColumnIndex(KEY_AMOUNTTYPE);

int iMarket = c.getColumnIndex(KEY_MARKETID);

int i=0;

for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){

i++;

result = result + i + ". " + c.getString(iName) + " " + c.getString(iAmount) + " " + c.getString(iAmountType) + " " + c.getString(iMarket) + "\n";

}

return result;

}它执行getSelectedData(市场)时给了我一个错误,

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// setare continut din layout

setContentView(R.layout.viewlist);

TextView tv=(TextView)findViewById(R.id.tvSQLinfo);

buton = (Button)findViewById(R.id.button1);

buton.setOnClickListener(this);

Bundle bundle = getIntent().getExtras();

String market = bundle.getString("market");

//tv.setText("Data send from previous intent nSite Name = +" + market );

//Afisare produse din baza de date

DatabaseHelper info= new DatabaseHelper(ViewProductsActivity.this);

try {

info.open();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

String data = info.getSelectedData(market);

tv.setText(data);

info.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要在 Android Studio 创建一个 SQLite 数据库。 1. 在项目创建一个新的文件夹,命名为“database”或者其他你喜欢的名称。 2. 在该文件夹下创建一个新的类,命名为“DatabaseHelper”。 3. 在该类,继承“SQLiteOpenHelper”类,并重写“onCreate”和“onUpgrade”方法。 ```java public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "myDatabase.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表格 String sql = "CREATE TABLE IF NOT EXISTS student (" + "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT, " + "age INTEGER)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 更新表格 String sql = "DROP TABLE IF EXISTS student"; db.execSQL(sql); onCreate(db); } } ``` 在这个例子,我们创建了一个名为“myDatabase.db”的数据库,以及一个名为“student”的表格(包含三个字段:_id、name、age)。如果该表格不存在,则在“onCreate”方法创建该表格。如果该表格已经存在,但版本号发生了变化,则在“onUpgrade”方法更新该表格。 接下来,我们需要创建一个“DataHelper”类来实现数据库的增删改查功能。 ```java public class DataHelper { private DatabaseHelper dbHelper; private SQLiteDatabase db; public DataHelper(Context context) { dbHelper = new DatabaseHelper(context); db = dbHelper.getWritableDatabase(); } public void insert(String name, int age) { ContentValues cv = new ContentValues(); cv.put("name", name); cv.put("age", age); db.insert("student", null, cv); } public void update(int id, String name, int age) { ContentValues cv = new ContentValues(); cv.put("name", name); cv.put("age", age); db.update("student", cv, "_id = ?", new String[] { String.valueOf(id) }); } public void delete(int id) { db.delete("student", "_id = ?", new String[] { String.valueOf(id) }); } public Cursor queryAll() { Cursor cursor = db.query("student", null, null, null, null, null, null); return cursor; } public Cursor queryById(int id) { Cursor cursor = db.query("student", null, "_id = ?", new String[] { String.valueOf(id) }, null, null, null); return cursor; } public void close() { db.close(); dbHelper.close(); } } ``` 在这个例子,我们创建了一个“DataHelper”类,用于实现增删改查功能。我们在该类创建了以下方法: 1. “insert”方法:用于向表格插入数据。 2. “update”方法:用于更新表格的数据。 3. “delete”方法:用于删除表格的数据。 4. “queryAll”方法:用于查询表格的所有数据。 5. “queryById”方法:用于根据ID查询表格的数据。 6. “close”方法:用于关闭数据库连接。 最后,我们可以在 Activity 调用这些方法来实现具体的操作。例如: ```java DataHelper dataHelper = new DataHelper(this); dataHelper.insert("Tom", 20); // 插入一条数据 dataHelper.update(1, "Jerry", 22); // 更新一条数据 dataHelper.delete(1); // 删除一条数据 Cursor cursor = dataHelper.queryAll(); // 查询所有数据 while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("_id")); String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); Log.d("SQLite", "_id=" + id + ", name=" + name + ", age=" + age); } cursor.close(); dataHelper.close(); // 关闭数据库连接 ``` 这样,就可以实现一个简单的 SQLite 数据库的增删改查功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值