我正在将一些数据和图片保存到我的数据库中我发现在db中保存我的图片的真正方法是使用contentvalue所以这个代码:
try
{
MyDataBase = new MyDatabase(this);
mydb = MyDataBase.getWritableDatabase();
ContentValues tempval;
for (int j = 0; j < myarray.arrtitle.length; j++)
{
tempval = saveimage(myarray.arrpic.get(j),myarray.arrpath[j]);
mydb.execSQL("INSERT INTO news (title,content) VALUES (\"" + myarray.arrtitle[j] +
"\",\"" + myarray.arrcontent[j] + "\"" + ")");
mydb.insert("news", null, tempval);
}
mydb.close();
Toast.makeText(getApplicationContext(), "database 2 done", Toast.LENGTH_LONG).show();
count = 5;
} catch (Exception e) {
// TODO: daabase error2
Toast.makeText(getApplicationContext(), "data error2", Toast.LENGTH_LONG).show();
}
这就是我正确保存数据的方法。 但问题是当我插入我的图像时,它插入新行而不是插入与标题相同的行。 有没有办法解决这个问题?
答案 0 :(得分:1)
如果要编辑现有行的某些列数据,则需要使用UPDATE查询。每次执行INSERT查询时,都会创建一个新行。
您正在执行INSERT查询两次,一旦插入标题和内容,然后在下一个查询中插入图像路径。而是在保存图像路径时,您应该对保存相应数据的同一行执行UPDATE查询。
使用LIKE而不是=运算符。
// updating row
db.update(TABLE, tempval , "title LIKE ?", new String[] { myarray.arrtitle[j] })