标签: sqlite

如何以编程方式删除RecyclerView中的行

嘿家伙我有一个recyclerview适配器,它填充了cardview上的一些数据列表.我在卡片布局的右下角创建了一个三点菜单,它实际上会从recyclerview中删除卡片行,并且还会从存储行数据的sqlite数据库中删除该项目.问题是我无法弄清楚如何将实现删除的方法集成到recyclerview ViewHolder中.这是源代码

public class BeneficiaryRecyclerAdapter extends RecyclerView.Adapter<BeneficiaryRecyclerAdapter.BeneficiaryViewHolder> {

private List<Beneficiary> listBeneficiary;
public ImageView overflow;
private Context mContext;

public BeneficiaryRecyclerAdapter(){

}


public BeneficiaryRecyclerAdapter(List<Beneficiary> listBeneficiary, Context mContext) {
    this.listBeneficiary = listBeneficiary;
    this.mContext = mContext;

}


@Override
public BeneficiaryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    // inflating recycler item view
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.item_beneficiary_recycler, parent, false);

    return new BeneficiaryViewHolder(itemView);
}

@Override
public void onBindViewHolder(final BeneficiaryViewHolder holder, int position) {
    holder.textViewName.setText(listBeneficiary.get(position).getName());
    holder.textViewEmail.setText(listBeneficiary.get(position).getEmail());
    holder.textViewAddress.setText(listBeneficiary.get(position).getAddress());
    holder.textViewCountry.setText(listBeneficiary.get(position).getAddress());

    holder.overflow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showPopupMenu(holder.overflow); …
Run Code Online (Sandbox Code Playgroud)

sqlite android-recyclerview cardview

0
推荐指数
1
解决办法
1489
查看次数

SQLite3如何从数据库中选择前100行,然后是下一个100行

目前我的数据库已经填满了1000行.

我想选择前100行,然后选择下一个100,然后选择下一个100,依此类推......

到目前为止,我有:

c.execute('SELECT words FROM testWords')
data = c.fetchmany(100)
Run Code Online (Sandbox Code Playgroud)

这允许我获得前100行,但是,我找不到使用另一个SELECT语句选择接下来的100行的语法.

我已经看到它可以用其他编码语言,但还没有找到Python的SQLite3的解决方案.

python sqlite

0
推荐指数
1
解决办法
1558
查看次数

使用SQL查询填充WTForms SelectField

我想用此查询返回的行填充WTForms SelectField:

cur.execute("SELECT length FROM skipakke_alpin_ski WHERE stock > 0")
Run Code Online (Sandbox Code Playgroud)

该查询返回具有不同类型滑雪板的滑雪板长度的行。cur.fetchall()返回以下元组:

[(70,), (75,), (82,), (88,), (105,), (115,), (125,), (132,), (140,), (150,), (160,), (170,)]
Run Code Online (Sandbox Code Playgroud)

我将如何将这些数字添加到中SelectField,以便每个滑雪板长度成为其自己的可选选择?如果我手动完成此操作,则将执行以下操作:

ski_size = SelectField('Ski size', choices=['70', '70', '75', '75'])
Run Code Online (Sandbox Code Playgroud)

...对于所有不同的长度,依此类推。

python mysql sqlite flask wtforms

0
推荐指数
2
解决办法
2936
查看次数

更新数据模型/类型greendao没有给出这样的列错误

我正在使用Library greendao将数据类型保存到本地数据库.设置实体并运行应用程序后,在api响应中添加了一个新属性.它变成了这样的东西.之前:

@Entity
public class Data{
    @Id
    long id;
    String name;
    String detail;
}
Run Code Online (Sandbox Code Playgroud)

后:

@Entity
public class Data{
    @Id
    long id;
    String name;
    String detail;
    String image;
  }
Run Code Online (Sandbox Code Playgroud)

更新数据类型后,我重新安装了应用程序,然后运行应用程序,但是android.database.sqlite.SQLiteException出错:没有这样的列:T.IMAGE(代码1):,编译时:SELECT T."_ id",T. "NAME",T."DETAIL",T."图像"来自"DATA"T

我该如何解决这个问题?

sqlite android greendao

0
推荐指数
1
解决办法
951
查看次数

SQL连接查询问题

这是我的查询的简化版本.它在SQLite中运行没有问题,但在MYSQL中却不是这样.

错误:'on子句'中的未知列'tab2.key'

SELECT 
  tab2.key AS remarksId, 
  tab1.sessionDate AS date, 
  tab1.sessionStart AS startTime
FROM 
  table1 AS tab1, 
  table2 AS tab2, 
  table3 AS tab3, 
  table4 AS tab4
INNER JOIN 
  table5 AS tab5 
  ON 
    tab5.remarkId = tab2.key 
  WHERE 
    tab1.userId='<anyNumber>' AND 
    tab2.objectiveId='<anyKey>' AND 
    tab1.reportId=tab2.reportId AND 
    tab1.reportId=tab3.key AND 
    tab4.key=tab3.sortieId 
ORDER BY date, startTime;
Run Code Online (Sandbox Code Playgroud)

不幸的是,把列放在"没有帮助".

我不确定是否将列'密钥'命名为一个好的做法(MYSQL关键字),但由于现有的安装,我必须以某种方式处理这个问题.为了快速测试,我重命名了"关键"列,但也没有任何成功.

非常感谢

mysql sql sqlite inner-join

0
推荐指数
1
解决办法
44
查看次数

如何在使用python将数据插入sqlite3时在重复条目上引发错误消息?

伙计我正在使用sqlite3和python tkinter作为前端.数据库很简单,有两个字段,用户名密码.我想进行注册注册页面.其中两个字段中给出的数据存储在sqlite3数据库中.数据正确插入.但是,当数据库中已存在提供的用户名时,我想显示一个消息框.我尝试了下面的代码.

我的代码:

def signup():
    userID = username.get()
    passwd = password.get()
    conn = sqlite3.connect('test.db')
    c = conn.cursor()
    result = c.execute("SELECT * FROM userstable")

    for i in result:
        if i[0] == userID:
            messagebox.showerror("DUPLICATE", "USER ALREADY EXISTS!")

    else:
        conn = sqlite3.connect('test.db')
        c = conn.cursor()
        c.execute("INSERT INTO userstable VALUES (?, ?)", (userID, passwd))
        conn.commit()
        c.close()
        conn.close()
        username.delete(0,END)
        password.delete(0,END)
        username.focus()
        messagebox.showinfo("SUCCESS", "USER CREATED SUCCESSFULLY")
Run Code Online (Sandbox Code Playgroud)

这可以工作,但仍然会在错误消息之后存储重复数据.如果用户名已经可用,我的要求是抛出错误并停止执行.如果用户名不可用,则应插入数据.

我哪里错了?有人可以通过指出来解释我,还是有其他方法可以达到这个目的?看来我需要修改一些功能.请指导我.

编辑1

如果我尝试使用三个条件,则休息不起作用.

我的代码

def data_entry():
    conn = sqlite3.connect('test.db')
    c = conn.cursor()
    c.execute('CREATE TABLE IF …
Run Code Online (Sandbox Code Playgroud)

python sqlite tkinter

0
推荐指数
1
解决办法
661
查看次数

无法打开数据库cordova_not_available

我在ionic2中使用Sqlite进行编码,但我接受此错误"无法打开数据库cordova_not_available".我怎么解决这个问题

Thanx寻求帮助.

我的错误(无法打开数据库cordova_not_available)

我的守则;

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite';
import { TabsPage } from '../pages/tabs/tabs';

@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage:any = TabsPage;

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {



    platform.ready().then(() => {
      statusBar.styleDefault();
      splashScreen.hide();


       let db = new SQLite();
       db.create({
                name: "iothook.db",
                location: "default"
            }).then((db1:SQLiteObject) => {
                db1.executeSql("CREATE TABLE IF …
Run Code Online (Sandbox Code Playgroud)

sqlite typescript ionic2

0
推荐指数
1
解决办法
1589
查看次数

如何使所有类方法只在单线程上运行?(同步课?)

我知道synchronized关键字make方法一次只能在单个类上运行.但这是问题所在.

我有一个带有方法的数据库类,例如insertAccount,updateSetting等等.如果我制作insertAccount,updateSetting同步,它们中的每一个都只能在一个线程上运行.

如果有一个整个数据库的方法,它会很棒,但没有一个.如果一个线程调用insertAccount而另一个线程调用updateSetting 的同时,它会坏了吧?

因为这些方法中只有一种可以随时运行.那我该怎么办?

有没有办法应用类似synchronized全班的东西?因此,如果第一个线程同时调用insertAccount第二个线程并且第二个线程调用updateSetting,则第二个线程必须等到第一个线程完成访问数据库.

java sqlite multithreading jdbc synchronized

0
推荐指数
1
解决办法
782
查看次数

插入时冻结应用(Android SQLite DB)

我正在制作一个小应用程序,以读取一些txt文件并将其导入设备上的SQLite数据库。
问题是,当我正确读取和导入文件时,应用在执行该方法时会冻结。我想显示进度条或类似的内容,但是由于这个问题,我什么也做不了。
这是导入方法代码:

private void importFilesFromTxt() {
    bd = helper.getWritableDatabase();
    File directorio = getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS);
    File file = new File(directorio, "art01.txt");
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        String[] parts;
        String sql = "delete from Articulos";
        bd.execSQL(sql);
        while ((line = br.readLine()) != null) {
            if (line.length() != 328) {
                parts = line.split("\\#+");
                Articulo arti = new Articulo(Integer.parseInt(parts[0]), parts[1], quitarEspaciosInt(parts[2]), quitarEspaciosInt(parts[3])
                        , convertirDecimal(parts[4]), quitarEspaciosInt(parts[5]), quitarEspaciosInt(parts[6]), quitarEspaciosFloat(parts[7]), quitarEspaciosInt(parts[8]));
                helper.addArticulo(arti);
            }
        }
        bd.close();
        br.close();
    } catch (IOException e) {
        System.out.println(e.toString());
    } …
Run Code Online (Sandbox Code Playgroud)

java sqlite android android-sqlite

0
推荐指数
1
解决办法
541
查看次数

为什么django测试-keep-db适用于postgres数据库但不适用于默认的sqlite3

我正在两个数据库设置中测试Django(v1.11.4)应用程序:1)在docker容器中运行的postgres数据库或2)sqlite3 as(默认数据库)

当使用--keepdb选项运行测试时,我观察到这两种设置的不同行为:对于postgres --keepdb按预期工作(没有数据库创建并且运行测试很快)但是对于sqlite3数据库--keepdb似乎不起作用(对于每次运行的测试都有创建数据库).是否可以--keepdb使用sqlite3?如果是这样,任何设置可能会影响上述行为?

sqlite testing django postgresql

0
推荐指数
1
解决办法
210
查看次数