以上就是给各位分享如何从android上的sqlite数据库中删除旧行?,同时本文还将给你拓展AndroidSQLite数据库中的表详解、android–从sqlite数据库中删除所有表、androi
以上就是给各位分享如何从android上的sqlite数据库中删除旧行?,同时本文还将给你拓展Android SQLite数据库中的表详解、android – 从sqlite数据库中删除所有表、android – 从sqlite数据库中获取最后一行、android – 如何从库中存储SQLite数据库中的图像等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 如何从android上的sqlite数据库中删除旧行?
- Android SQLite数据库中的表详解
- android – 从sqlite数据库中删除所有表
- android – 从sqlite数据库中获取最后一行
- android – 如何从库中存储SQLite数据库中的图像
如何从android上的sqlite数据库中删除旧行?
我在天变量中读到它.将记录添加到数据库的日期和时间存储在KEY_DATE_ADDED中,创建如下:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // sql date format Date date = new Date(); initialValues.put(KEY_DATE_ADDED,dateFormat.format(date));
然后我做以下事情:
mDb.delete(DATABASE_TABLE,"date(Now) > date(" + KEY_DATE_ADDED + ",+" + days + " days)",null);
它不起作用.实际查询(部分)如下所示:
WHERE date(Now) > date(date_added,+10
days)
这里有什么不对?看起来像而不是date_added其他东西应该在这里.
我想使用SQL data formatting来避免多次重新格式化日期.
Android数据库是否有用于测试实际数据的SQL查询的GUI?
@H_301_2@解决方法
总结
以上是小编为你收集整理的如何从android上的sqlite数据库中删除旧行?全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Android相关文章
- • Android获得屏幕宽高怎么实现?Android
- • Android Studio实现课程表应用(Kotlin
- • Frida-Dexdump 脱壳工具下载使用以及相
- • Android studio 实现app登录注册页面
- • Android App开发实战之实现微信记账本(
- • 高仿小米加载动画效果
- • FlutterComponent最佳实践之角对齐
- • Retrofit WebService 实践
- • 一文读懂 Handler 机制
- • HanderThread基本使用以及内部实现原理
Android SQLite数据库中的表详解
Android sqlite数据库
前言
以前写PHP的时候,内置了print_r()和var_dump()两个函数用于打印输出任意类型的数据内部结构,现在做Android的开发,发现并没有这种类似的函数,对于数据库的查看很不方便,于是就写了一下查看数据库表的方法代码。
代码实现
import java.util.Arrays; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.sqliteDatabase; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SecondActivity extends Activity { public static final String TAG = "Debug Info"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ((Button)findViewById(R.id.btnQue)).setonClickListener(new OnClickListener() { @Override public void onClick(View v) { MyDatabaseHelper dbhelper = new MyDatabaseHelper(SecondActivity.this,"BookStore.db",null,1); sqliteDatabase db = dbhelper.getWritableDatabase(); //核心区 //读取系统表 sqlite_master String sql = "select * from sqlite_master"; Cursor cursor = db.rawQuery(sql,null); //打印表的所有列名 Log.i(TAG,Arrays.toString(cursor.getColumnNames())); //打印当前数据库中的所有表 if (cursor.movetoFirst()) { do { String str = ""; for (String item : cursor.getColumnNames()) { str += item + ": " + cursor.getString(cursor.getColumnIndex(item)) + "\n"; } Log.i(TAG,str); } while (cursor.movetoNext()); } } }); } }
功能扩展
查看表是否存在
public Boolean tableIsExist(sqliteDatabase db,String tableName){ boolean result = false; Cursor cursor = null; if(tableName == null){ return result; } String sql = "select count(*) from sqlite_master where type ='table' and name ='"+tableName.trim()+"'"; cursor = db.rawQuery(sql,null); if(cursor.movetoNext()){ if(cursor.getInt(0) > 0){ result = true; } } return result; }
查看数据库中有哪些表
public ArrayList<String> tablesInDB(sqliteDatabase db){ ArrayList<String> list = new ArrayList<String>(); String sql = "select name from sqlite_master where type='table'"; Cursor cursor = db.rawQuery(sql,null); if (cursor.movetoFirst()) { do { list.add(cursor.getString(0)); } while (cursor.movetoNext()); } return list; }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
android – 从sqlite数据库中删除所有表
我做了很多研究,无法找到合适的方法来删除sqlite数据库中的所有表.最后,我做了一个代码来从数据库中获取所有表名,我尝试逐个使用检索到的表名删除表.它没有用.
请建议我从数据库中删除所有表的方法.
这是我使用的代码:
public void deleteall(){
sqliteDatabase db = this.getWritableDatabase();
Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
do
{
db.delete(c.getString(0),null,null);
}while (c.movetoNext());
}
按钮单击时调用函数deleteall(),其代码如下:
public void ButtonClick(View view)
{
String Button_text;
Button_text = ((Button) view).getText().toString();
if(Button_text.equals("Delete Database"))
{
DatabaseHelper a = new DatabaseHelper(this);
a.deleteall();
Toast.makeText(getApplicationContext(), "Database Deleted Succesfully!", Toast.LENGTH_SHORT).show();
}}
解决方法:
使用DROP TABLE:
// query to obtain the names of all tables in your database
Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
List<String> tables = new ArrayList<>();
// iterate over the result set, adding every table name to a list
while (c.movetoNext()) {
tables.add(c.getString(0));
}
// call DROP TABLE on every table name
for (String table : tables) {
String dropQuery = "DROP TABLE IF EXISTS " + table;
db.execsql(dropQuery);
}
android – 从sqlite数据库中获取最后一行
我试图从我的sqlite数据库中获取最后一行.直到现在我已经尝试过max,sql_sequence但似乎没有任何效果.我必须获取行值并将其分配给类变量.
感谢任何帮助,因为我是sqlite和Android的新手.
谢谢..
解决方法:
如果您已经获得了光标,那么这就是您从光标获取最后一条记录的方法:
cursor.movetoPosition(cursor.getCount() – 1);
//然后使用cursor来读取值
要么
像这样做
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.movetoLast();
要么
SELECT * FROM TABLE WHERE ID = (SELECT MAX(ID) FROM TABLE);
android – 如何从库中存储SQLite数据库中的图像
我已尝试此代码将图像从库上传到我的应用程序中的sqllite数据库,但当我的应用程序尝试打开库时,它会强制关闭错误,我不知道是什么问题.帮助我和thanx在高级
public class ImagggggggActivity extends Activity {
private static final int SELECT_PICTURE = 1;
private String selectedImagePath;
private ImageView img;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.button1))
.setonClickListener(new OnClickListener() {
public void onClick(View arg0) {
// in onCreate or any event where your want the user to
// select a file
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), SELECT_PICTURE);
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
}
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.movetoFirst();
return cursor.getString(column_index);
}}
解决方法:
通过按钮单击导入表单设备
Intent sdintent = new Intent(Intent.ACTION_PICK);
sdintent.setType("image/*");
startActivityForResult(sdintent, SD_REQUEST);
获取图像表单SD卡
if (requestCode == SD_REQUEST) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.movetoFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
testimage.setimageBitmap(yourSelectedImage);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArray = stream.toByteArray();
}
保存图片
DatabaseAdapter dbHelper = new DatabaseAdapter(Profiles.this);
dbHelper.open();
dbHelper.createuserProfiles( byteArray);
dbHelper.close();
在DatabaseAdapter.java中没有
限定
public static final String U_PIC = "picture";
然后
private long createuserTableContentValues(long id,byte[] byteImage) {
ContentValues values = new ContentValues();
values.put(ID, id);
values.put(U_PIC, byteImage);
return database.insert(IMAGE_INSERT, null, values);
}
我想这可能对你有帮助…..
其他资源:
http://www.helloandroid.com/tutorials/store-imagesfiles-database
http://www.coderanch.com/t/507054/Android/Mobile/Storing-image-database
http://hi.baidu.com/_java/blog/item/971e142a13afe6305243c12f.html
http://www.tutorialforandroid.com/2009/10/how-to-insert-image-data-to-sqlite.html
今天的关于如何从android上的sqlite数据库中删除旧行?的分享已经结束,谢谢您的关注,如果想了解更多关于Android SQLite数据库中的表详解、android – 从sqlite数据库中删除所有表、android – 从sqlite数据库中获取最后一行、android – 如何从库中存储SQLite数据库中的图像的相关知识,请在本站进行查询。
本文标签: