我正在尝试从Sqlite数据库检索行的总数。我使用了以下代码,但问题是即使有多于一行满足条件,计数也始终为1。谁能指导我哪里出问题了。
public int get_report_entry_area_count(String jobId, String area,
String sensor) {
String countQuery = "select count(*) from report1 where JobId='"
+ jobId + "' and sensor='" + sensor + "'" + " and Area='"
+ area + "'";
SQLiteDatabase database = this.getWritableDatabase();
Cursor c = database.rawQuery(countQuery, null);
c.moveToFirst();
int total = c.getCount();
c.close();
return total;
}
Run Code Online (Sandbox Code Playgroud) 嘿,我创建了我的数据库,并希望插入一些字段初始化,但得到一个sqliteexception没有这样的表,而编译时无法插入到表中.忘记了id值-1,我没有得到确切的错误.
public long insertData(String name, String number, String email, String jobtype, String uri, String msg)
{
SQLiteDatabase db = database.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(database.NAME, name);
contentValues.put(database.NUMBER, number);
contentValues.put(database.EMAIL, email);
contentValues.put(database.JOBTYPE, jobtype);
contentValues.put(database.URI, uri);
contentValues.put(database.MSG, msg);
long id = db.insert(database.TABLE_NAME, null, contentValues);
return id;
}
static class Database extends SQLiteOpenHelper{
private static final String DATABASE_NAME="cloudicadatabase";
private static final String TABLE_NAME="CLTABLE";
private static final int DATABASE_VERSION= 1;
private static final String COLUMN_UID = "_id";
private static final String NAME="Name";
private …Run Code Online (Sandbox Code Playgroud) 当我在Python中运行不正确的语句时,我没有收到任何错误或警告.声明如下:
CREATE TABLE mystery_table(id mystery_type)
Run Code Online (Sandbox Code Playgroud)
如你所见,我在这里使用了一个不正确的数据类型mystery_type,仍然创建了表,当我运行时
SELECT name FROM sqlite_master where type = 'table'
Run Code Online (Sandbox Code Playgroud)
我得到了一份表格列表mystery_table.那么,为什么呢?为什么有可能运行一些垃圾声明并获得一些结果?谢谢!PS.我不是在sqlite3提示符下运行所有这些命令,而是通过Python运行.
我是开发Android应用程序的新手,我正在决定是否对我的应用程序使用SQLite或MySQL。
我仍然对SQLite是什么以及它如何工作感到困惑。请原谅我的菜鸟问题。
据我了解,SQLite是本地存储和无服务器的。我的应用程序需要注册用户帐户,因此我不确定SQLite是否可以实现。我的意思是,您如何使用SQLite在本地存储用户帐户信息?假设我有3个用户注册,每个用户是否仅在手机上存储其用户名和密码?因此,每个用户在其本地数据库中看到的“ username”和“ password”值都不同吗?由于没有集中式数据库,这是否意味着我(作为开发人员)无法访问任何用户信息,因为所有信息都本地存储在用户的电话中而不是服务器中?为什么SQLite甚至有用?
我正在开发的Android应用程序基本上是一个购物应用程序,它有一个Cart选项,用户可以在其中添加项目.
物品有图像,名称,价格等.
我从服务器获取所有这些数据.
当用户单击"添加到购物车"选项时,将创建一个sqlite数据库,其中存储名称,价格和图像路径.
当点击添加到购物车并且只有图像路径存储在数据库中时,基本上Imgaes存储在内部存储器中.
问题:
要将图像存储在内部存储器中,我使用下面的代码,我将自己给出文件名(在这种情况下,我将文件名称为profile.jpg).
SaveToMemory:
private String saveToInternalSorage(Bitmap bitmapImage){
ContextWrapper cw = new ContextWrapper(getApplicationContext());
// path to /data/data/yourapp/app_data/imageDir
directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
// Create imageDir
mypath=new File(directory,"profile.jpg");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(mypath);
// Use the compress method on the BitMap object to write image to the OutputStream
bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} …Run Code Online (Sandbox Code Playgroud) 应用程序每次运行时都会关闭.当我检查logcat时,这是继续弹出的错误.
android.database.sqlite.SQLiteException: near "=": syntax error (code 1): , while compiling: SELECT * FROM tblresultsWHEREtopid=1ANDusname=fbbh
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2351)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.access$600(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5391)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
这是来自DBHELPER的我的片段:TOP_ID初始化为字符串.
public List<Result> getAllResult() {
String qry3 = "SELECT * FROM " + TABLE_RESULT + "WHERE" + TOP_ID + "=" + "1" + "AND" + USER_NAME + "=" + user;
Log.e(LOG, qry3);
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = …Run Code Online (Sandbox Code Playgroud) 我正在使用SilverLight为Windows Phone 8.1开发一个应用程序,因为我使用sqlite存储一些产品的详细信息,但我想知道如何永久存储该数据意味着当我关闭模拟器时数据丢失.所以请告诉我如何存储这些数据.
我正在开发一个包含短篇故事的简单应用程序,我正在尝试使用数据库但是我收到了一个错误:
引起:android.database.sqlite.SQLiteException:没有这样的列:TITLE(代码1):,同时编译:SELECT TITLE,STORY FROM MY_TABLE
SQLiteActivity.java
package com.scriptos.testsqlit;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLiteActivity {
private static String DBNAME = "Sqlite_simple.db";
private static String TABLE = "MY_TABLE";
private static String COLUMN_1 = "TITLE";
private static String COLUMN_2 = "STORY";
private SQLiteDatabase database;
private SQLiteOpenHelper helper_database;
private Context context;
public SQLiteActivity(Context c){
context = c;
}
public SQLiteActivity Read() throws android.database.SQLException {
helper_database = new SQLiteHelper(context, DBNAME, null, 1);
database = helper_database.getReadableDatabase();
return this; …Run Code Online (Sandbox Code Playgroud) Android是否可以为英语和其他语言创建SQLite数据库文件,并且其行为类似于字符串值?我要做的就是处理一个代码,然后Android根据设备语言选择合适的数据库。
我已经尝试使用Google几个小时了,很抱歉,如果答案已经存在
这是我到目前为止的内容:
c.execute("SELECT * FROM table")
table = c.fetchall()
print(table)
#to export as csv file
with open("wub.csv", "wb") as write_file:
cursor = connection.cursor()
for row in cursor.execute("SELECT * FROM table"):
write_file.write(row)
Run Code Online (Sandbox Code Playgroud)
但我不断出现错误:
Traceback (most recent call last):
File "C:/Users/Rachel/Documents/database.py", line 52, in <module>
write_file.write(row)
TypeError: a bytes-like object is required, not 'tuple'
Run Code Online (Sandbox Code Playgroud)
所以我很确定自己做错了什么-如何将表格正确导出到外部CSV文件?谢谢
编辑: 到Janekmuric