我使用真实类型来保存SQLite数据库中的价格值,但它没有正确返回值.如果我保存一些像1.01它会返回的值4.029999999999999.我已经读过在SQLite中保存价格的最好方法是使用整数类型
但我不知道如何使用它.在这种情况下如何存储和检索价格?这里编码我现在检索价格的方式:
Cursor cursor = null;
double totalPrice = 0;
try {
cursor = mDB.rawQuery("select " + Expense.PRICE + " from " + Expense.TABLE_NAME + " where " + " (strftime("
+ dateType + ", " + Expense.DATE + "))" + "= ? ", new String[] { currentDate });
} catch (Exception e) {
Log.e(TAG, "error" + e.toString());
e.printStackTrace();
}
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
totalPrice += cursor.getDouble(cursor.getColumnIndex(Expense.PRICE));
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个使用sqlite DB的应用程序.我有一个问题,它是任何时候运行我的应用程序在我的表sqlite中添加NSDictionary.我想要一次检查sqlite,如果表sqlite中存在数据,则不添加其他添加它.
我的代码:
ViewController.h
#import <UIKit/UIKit.h>
#import "sqlite3.h"
@interface ViewController : UIViewController
{
sqlite3 * database;
}
@end
Run Code Online (Sandbox Code Playgroud)
ViewController.m
#import "ViewController.h"
#define DatabaseName @"data.sqlite"
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *idd = [NSArray arrayWithObjects:@"122",@"234",@"453", nil];
NSArray *name = [NSArray arrayWithObjects:@"janatan",@"fred",@"john", nil];
NSArray *age = [NSArray arrayWithObjects:@"23",@"35",@"12", nil];
NSArray *sex = [NSArray arrayWithObjects:@"male",@"male",@"male", nil];
for (int i = 0; i < [idd count]; i++)
{
NSString * a = [idd objectAtIndex:i];
NSString * b = [name objectAtIndex:i];
NSString * …Run Code Online (Sandbox Code Playgroud) 我必须在objective-C中实现一种库,它有助于将任何对象存储在数据库中,并进行内省.但我在数据库连接方面遇到了一些麻烦.
我在使用Obj-C的iphone上找到了一些使用SQLite的教程,但是在应用程序中没有在OSX上执行.
我想提供一个Sqlite连接和一个MySql连接(以满足用户的偏好).是否可以在Objective-C命令行工具中执行此操作?如果是这样,怎么样?
谢谢!
我在C#项目中使用csharp-SQLite包装器。
以前,我使用相同的库,但是使用了同步功能而不是异步功能。
我可以使用BeginTransaction。该函数在异步调用中不存在。
如何使用异步调用启动和提交事务?
我已通过此命令在终端中创建了一个数据库:
sqlite3 test.db
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用这些代码制作一个表格:
ui->setupUi(this);
db1.setDatabaseName("test.db");
bool k=db1.open();
QSqlQuery q(db1);
q.prepare("CREATE TABLE by_code(id INT)");
q.exec();
qDebug()<<"isOpen: "<<k<<" Error:"<<q.lastError();
Run Code Online (Sandbox Code Playgroud)
输出是:
isOpen: true Error: QSqlError(-1, "Unable to fetch row", "No query")
Run Code Online (Sandbox Code Playgroud)
什么问题,我该如何解决?
我有3张桌子.两个表(par1,par1)都将(child_id)引用到第3个表(子)中的id.
我喜欢在第3个表中找到孤儿,即其他两个表中没有引用的记录.
如果我只有一次引用表,我可以写:
SELECT * FROM child WHERE id NOT IN (SELECT child_id FROM par1)
Run Code Online (Sandbox Code Playgroud)
但是如何为两个引用表解决这个问题呢?
我正在使用sqlite.
我在Android eclipse中使用SQLite,但它在函数createEntry中给了我一个java.lang.nullpointerexception.我尝试使用Questoid SQLite管理器来查看数据库文件,它确实显示了创建的表.错误在哪里?
public class Transact {
public static final String KEY_ROWID = "_id";
public static final String KEY_TAG = "saved_tag";
private static final String DATABASE_NAME = "MyDatabaseName";
private static final String DATABASE_TABLE = "tagsTable";
private static final int DATABASE_VERSION = 1;
private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDatabase;
private static class DbHelper extends SQLiteOpenHelper{
public DbHelper(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(
"CREATE TABLE …Run Code Online (Sandbox Code Playgroud) 已编辑 - 在reposnse之后添加了更多代码(仍然无法正常工作)
我想用一个使用变量的Where子句查询sqlite,但是我无法使它工作.
我设置了一个变量并传递它,但只有硬编码的工作...
这有效:
Penut是docName列中的记录之一.
rs = stat.executeQuery("SELECT * FROM " + TABLE_NAME + " WHERE docName = 'Penut'");
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用:
Connection conn = DriverManager.getConnection("jdbc:sqlite:dufuss.db");
Statement stat = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
myInput ="Penut";
String sql = "SELECT * FROM " + TABLE_NAME + " WHERE docName = ?";
conn.prepareStatement(sql).setString(1, myInput);
rs = stat.executeQuery(sql);
Run Code Online (Sandbox Code Playgroud)
那么,我如何让变量myInput工作?
我试图从我的Android应用程序的sqlite获取行数,但由于某种原因,它总是返回零,即使我的数据库中有足够的行数.
这是代码:
DatabaseConnector database1 = new DatabaseConnector(getApplicationContext());
int TotalPosts = database1.getIds();
public int getIds()
{
String selectQuery = "SELECT COUNT(Pst_id) AS CountTotal FROM student_posts";
SQLiteDatabase database = this.dbOpenHelper.getReadableDatabase();
Cursor c = database.rawQuery(selectQuery, null);
count = c.getColumnIndex("CountTotal");
return count;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在开发一个使用Sqlite作为后端的iphone应用程序.我想在我的应用程序中实现搜索功能,我使用sql查询.我想以区分大小写的方式实现搜索.我使用以下查询或获取数据.
SELECT data FROM table where data LIKE 'A%' ORDER BY ID ASC
Run Code Online (Sandbox Code Playgroud)
由于Sqlite不区分大小写,因此我得到的数据以'a'和'A'开头.满足我的要求的备用选项是在显示之前过滤我的代码中的获取内容.我尝试了NSPredicate,但这也是以不区分大小写的方式工作的.这是我的代码..
NSPredicate *pred = [NSPredicate predicateWithFormat:@"self BEGINSWITH[c] %@",[NSString stringWithFormat:@"%c",[filter characterAtIndex:i]]];
NSArray *arr = [arrayComponent filteredArrayUsingPredicate:pred];
Run Code Online (Sandbox Code Playgroud)
这有什么解决方案吗?