public class DataAdapterText
{
Context c;
SQLiteDatabase db;
DBHelperText helper;
public DataAdapterText(Context c) {
this.c = c;
helper=new DBHelperText(c);
}
public void getSize(int id)
{
SQLiteStatement byteStatement = db.compileStatement("SELECT LENGTH(txtitle) FROM TX_Table WHERE tid='"+id+"'");
long bytes = byteStatement.simpleQueryForLong();
long kilobytes = 1024,
megabytes = kilobytes * kilobytes,
gigabytes = megabytes * kilobytes,
terabytes = gigabytes * kilobytes;
if (bytes<kilobytes)
{
Toast.makeText(c, bytes+" B", Toast.LENGTH_SHORT).show();
}
else if (bytes>=kilobytes && bytes<megabytes)
{
Toast.makeText(c, bytes+" KB", Toast.LENGTH_SHORT).show();
}
else if (bytes>=megabytes && bytes<gigabytes)
{
Toast.makeText(c, bytes+" MB", Toast.LENGTH_SHORT).show();
}
else if (bytes>=gigabytes && bytes<terabytes)
{
Toast.makeText(c, bytes+" GB", Toast.LENGTH_SHORT).show();
}
}
}
public class TextNotes extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_text_notes);
DataAdapterText dataAdapterText=new DataAdapterText(TextNotes.this);
dataAdapterText.openDB();
dataAdapterText.getSize(Id);//here Id is the ID of specific item when clicked by the user and is coming from the Recycler adapter. No issue with this ID!
dataAdapterText.closeDB();
}
2019-05-18 14:19:25.893 13286-13286/com.example.unifiednotesnew E/asset: AssetManager::addSystemOverlays delete oidmap
2019-05-18 14:19:39.943 13286-13286/com.example.unifiednotesnew E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.unifiednotesnew, PID: 13286
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.unifiednotesnew/com.example.unifiednotesnew.TextNotes}: android.database.sqlite.SQLiteDoneException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2750)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2811)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
Caused by: android.database.sqlite.SQLiteDoneException
at android.database.sqlite.SQLiteConnection.nativeExecuteForLong(Native Method)
at android.database.sqlite.SQLiteConnection.executeForLong(SQLiteConnection.java:604)
at android.database.sqlite.SQLiteSession.executeForLong(SQLiteSession.java:790)
at android.database.sqlite.SQLiteStatement.simpleQueryForLong(SQLiteStatement.java:107)
at com.example.unifiednotesnew.Adapter.DataAdapterText.getSize(DataAdapterText.java:193)
at com.example.unifiednotesnew.TextNotes.onCreate(TextNotes.java:125)
at android.app.Activity.performCreate(Activity.java:6757)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2703)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2811)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
您的问题是没有选择任何行,也没有要返回的值。
即:-
SQLiteDoneException
........
SQLiteStatement byteStatement = db.compileStatement("SELECT LENGTH(txtitle) FROM TX_Table WHERE tid='"+id+"'");
long bytes = 0;
try {
bytes = byteStatement.simpleQueryForLong();
} catch (SQLiteDoneException e) {
}
long kilobytes = 1024,
........
public long getColumnLengthById(String table, String column, long id, String idcolumn) {
long rv = 0;
String rv_column = "LEN";
String[] columns = new String[]{"length(" + column + ") AS " + rv_column};
String whereclause = idcolumn + "=?";
String[] whereargs = new String[]{String.valueOf(id)};
SQLiteDatabase db = this.getWritableDatabase();
Cursor csr = db.query(table,columns,whereclause,whereargs,null,null,null);
while (csr.moveToNext()) {
rv = rv + csr.getLong(csr.getColumnIndex(rv_column));
}
csr.close();
return rv;
}
在我的SQLite数据库管理器中,我可以查询以下内容: 此查询返回2012年7月名为“tripmileagetable”的表中里程表列的总和,但我想在android查询中编写此代码。 但是我不知道如何在database.query()方法中建立这个查询,有人能帮忙吗?
问题内容: 在我的SQLite数据库管理器中,我可以查询以下内容: 这个查询从2012年7月的名为“ tripmileagetable”的表中返回了里程表总和,但是我想在android查询中编写此代码。 但是我不知道如何在database.query()方法中建立此查询,有什么可以帮助吗? 问题答案:
问题内容: 我想知道如何检查数据库中的特定表(例如:myTable)中是否存在特定列(例如:日期)。 我已经阅读了此答案,该答案提供了一个查询,该查询导致另一个查询。 但是我需要的是结果。 更新1 如何在C#应用程序中做到这一点? 也许使用或其他? 问题答案: 感谢所有提供解决方案并收集了一些答案的人,我提出了自己的解决方案版本。也许这不是最好的解决方案,但是至少我不需要额外的dll来添加引用或处
问题内容: 我正在使用fileBrowser在手机上查找文件,但是我想向用户显示我的应用程序可以打开的所有文件,然后用户选择一个。就像音乐播放器一样,它不仅可以显示用户所在文件夹中的歌曲,还可以显示手机,SD卡和内存中的所有歌曲。 问题答案: 在列出文件时使用文件名过滤器。以下示例列出了给定目录中的所有mp3文件(注意-以下代码未对之下的所有文件夹进行递归处理)-
问题内容: 我在使用Java在Selenium中定位span元素时遇到问题。 HTML看起来像: 我已经尝试了以下方法,但是没有运气: 和 和 以及其他一些类似的尝试。您能指出我执行此操作的最佳方法吗?就目前而言,我在日食中不断收到“无法定位元素”错误。 问题答案: 一切看起来都不错,只是语法上有些错误。你失踪了 正确的如下: 要么 要么 或者您可以用作:- 使用上面的任何一个通过定位器,您都可以
问题内容: 我正在尝试制作简单的Java代码,以检查MySQL DB中是否存在表和/或列。我应该使用Java代码进行检查还是生成一个SQL查询字符串并执行以进行检查? 编辑- @ aleroot- 我尝试使用您的代码,如下所示。运行以下代码时,我看不到任何表或列。我只看到这个 我的数据库有很多数据库,表和列。我不知道为什么该程序可以正常工作。 问题答案: 要检查表是否存在,可以按以下方式使用Dat