Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从条形码扫描仪应用程序访问数据以用于SQLite查询_Java_Android_Sqlite - Fatal编程技术网

Java 从条形码扫描仪应用程序访问数据以用于SQLite查询

Java 从条形码扫描仪应用程序访问数据以用于SQLite查询,java,android,sqlite,Java,Android,Sqlite,这是关于堆栈溢出的第一个问题,请原谅我的疏忽或格式错误。这个问题似乎很简单,但由于某种原因,我无法将这些部分组合起来。我也在学习java和android studio,所以请原谅我的错误代码 我需要从我的条形码扫描应用程序中收集数据,将其提交到一个变量,然后通过我的数据库传递该变量,以获取基于UPC代码的信息。我使用ZXing库进行条形码扫描器,并使用HandlerResult方法捕获初始数据 我在SimpleScanner活动中收集了数据,但我不知道如何在SQlite查询中使用该变量。下面是我

这是关于堆栈溢出的第一个问题,请原谅我的疏忽或格式错误。这个问题似乎很简单,但由于某种原因,我无法将这些部分组合起来。我也在学习java和android studio,所以请原谅我的错误代码

我需要从我的条形码扫描应用程序中收集数据,将其提交到一个变量,然后通过我的数据库传递该变量,以获取基于UPC代码的信息。我使用ZXing库进行条形码扫描器,并使用HandlerResult方法捕获初始数据

我在SimpleScanner活动中收集了数据,但我不知道如何在SQlite查询中使用该变量。下面是我正在使用的主要类

任何帮助都将不胜感激。我可以很好地查询整个数据库,但我需要查找与我正在扫描的实际项目相匹配的行。再次感谢

SimpleScannerActivity.java

DatabaseAccess.java


多亏了@muratgu,我终于想出了一个解决办法!我创建了另一个方法,该方法为扫描的数据创建并存储一个变量,并通过查询传递该变量

/**
 * read a single record from the database the matches the UPC-A code scanned.
 * if there is no match, do nothing.
 * @param rawContent
 * @return a brand name based on the matching UPC-A code that was scanned.
 */
public String getInfo(String rawContent) {
    String TAG = "Getinfo():";
    String content = "00" + rawContent;
    String brandName = "";
    Cursor cursor = database.rawQuery("SELECT name, upc12 from Barcodes WHERE '" + content + "' = upc12", null);
    if(cursor.getCount() > 0) {
        cursor.moveToFirst();
        brandName = cursor.getString(cursor.getColumnIndex("name"));

        cursor.close();
    } else {
        Log.v(TAG, "uh oh, something went wrong in the if loop! ");
    }

    return brandName;
}
该方法在SimpleScanerActivity.java文件中调用,在该文件中扫描的数据可以通过变量传递。该方法返回项的名称,然后将其放置在对话框中。正是我需要的


再次感谢,@muratgu!你给了我足够的信息,我可以自己解决这个问题。我只是想了想

多亏了@muratgu,我终于想出了一个解决办法!我创建了另一个方法,该方法为扫描的数据创建并存储一个变量,并通过查询传递该变量

/**
 * read a single record from the database the matches the UPC-A code scanned.
 * if there is no match, do nothing.
 * @param rawContent
 * @return a brand name based on the matching UPC-A code that was scanned.
 */
public String getInfo(String rawContent) {
    String TAG = "Getinfo():";
    String content = "00" + rawContent;
    String brandName = "";
    Cursor cursor = database.rawQuery("SELECT name, upc12 from Barcodes WHERE '" + content + "' = upc12", null);
    if(cursor.getCount() > 0) {
        cursor.moveToFirst();
        brandName = cursor.getString(cursor.getColumnIndex("name"));

        cursor.close();
    } else {
        Log.v(TAG, "uh oh, something went wrong in the if loop! ");
    }

    return brandName;
}
该方法在SimpleScanerActivity.java文件中调用,在该文件中扫描的数据可以通过变量传递。该方法返回项的名称,然后将其放置在对话框中。正是我需要的


再次感谢,@muratgu!你给了我足够的信息,我可以自己解决这个问题。我只是想了想

为了让问题更清楚,可以在问题中添加一个部分,说明您在当前代码中创建sql查询的位置和方式。您的第一步应该是了解如何使用where子句编写select查询,以便找到带有条形码的记录,然后在您的问题中创建带有条形码参数的方法DatabaseAccess类类似于getCodes,但返回的是一个实例而不是列表。我不知道是否有用,但在你的方法getCodes中,在while中,你得到的是getStringget0而不是getString0。谢谢@JoséMª这是一个格式错误,我现在正在修复它@muratgu好的,我会努力弄清楚的。我理解基本的MYSQL语法,我的第一个想法是创建SELECT name,upc14来自条形码,其中some_variable=upc14 some_variable是从扫描中捕获的原始数据。请尝试在您的问题中添加一个部分,说明您尝试在当前代码中创建sql查询的确切位置和方式。您的第一步应该是了解如何使用WHERE子句编写select查询你可以找到带有条形码的记录,然后在DatabaseAccess类中创建一个带有条形码参数的方法,类似于getCodes,但返回一个实例而不是列表。我不知道是否有用,但在你的方法getCodes中,在这段时间内,你得到了getStringget0而不是getString0。谢谢@JoséMª这是一个格式错误,我正在修理它@muratgu好的,我会努力弄清楚的。我理解基本的MYSQL语法,我的第一个想法是从条形码创建SELECT name,upc14,其中some_variable=upc14 some_variable是从扫描中捕获的原始数据。
/**
 * read a single record from the database the matches the UPC-A code scanned.
 * if there is no match, do nothing.
 * @param rawContent
 * @return a brand name based on the matching UPC-A code that was scanned.
 */
public String getInfo(String rawContent) {
    String TAG = "Getinfo():";
    String content = "00" + rawContent;
    String brandName = "";
    Cursor cursor = database.rawQuery("SELECT name, upc12 from Barcodes WHERE '" + content + "' = upc12", null);
    if(cursor.getCount() > 0) {
        cursor.moveToFirst();
        brandName = cursor.getString(cursor.getColumnIndex("name"));

        cursor.close();
    } else {
        Log.v(TAG, "uh oh, something went wrong in the if loop! ");
    }

    return brandName;
}