在插入SQLite表

时间:2016-11-11 09:55:59

标签: java android sqlite android-sqlite

我被困在一个项目上,需要帮助才能解决这个问题 我从3个不同的输入接收数据(2个是Spinners,1个是TextView) 表列名称为:customer id,quantity和production id。

在插入我的表之前,我需要检查重复条目的生产ID。

以下是我目前的工作:

if(res.getCount()==0){
            boolean isInserted = mytempDB.insertdataintotemptable(
                    ProducationSpinner.getSelectedItem().toString(), QuantityText.getText().toString(),
                    CustomerSpinner.getSelectedItem().toString());
            if (isInserted == true)
                Toast.makeText(orderChalan.this, "Data save successfully", Toast.LENGTH_LONG).show();
            else
                Toast.makeText(orderChalan.this, "Data not Inserted", Toast.LENGTH_LONG).show();
        } else {

            while(res.isAfterLast()){

                if (res.getString(4).toString() == CustomerSpinner.getSelectedItem().toString()) {

                    boolean isInserted = mytempDB.insertdataintotemptable(ProducationSpinner.getSelectedItem().toString(),
                            QuantityText.getText().toString(), CustomerSpinner.getSelectedItem().toString());

                    if (isInserted == true)
                        Toast.makeText(orderChalan.this, "Data save successfully", Toast.LENGTH_LONG).show();
                    else
                        Toast.makeText(orderChalan.this, "Data not Inserted", Toast.LENGTH_LONG).show();
                }
                else {
                    Toast.makeText(orderChalan.this, "Production ID can not different", Toast.LENGTH_LONG).show();
                }
            }
        }

我选择第一行并获得生产ID值 之后我尝试每次匹配表中的用户输入和数据,然后插入表中 如果数据不匹配,那么我会显示错误消息"生产ID不能不同"如果第一次输入没有数据,我还会检查第一次输入;在这种情况下,没有检查。

我得到的错误是"生产ID不能不同" - 我从第二次输入时收到此消息。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我在描述逻辑。您需要在代码中执行的操作。

  1. 首先检查您的表格是否包含任何数据。
  2. 如果表格为空,则将当前数据插入表格。
  3. 如果table不为空,则运行查询以检查表中是否有当前“生产ID”。 query是“select * from TABLE_NAME WHERE Column_name(production id)=您当前的生产ID。
  4. 如果Cursor.getCount> 0
    //当前生产ID存在
    否则
       //在表格中插入当前详细信息

答案 1 :(得分:0)

我认为您所描述的问题是由于使用 == 来比较字符串。 == 将测试字符串对象/实例是否相同,而不是比较字符串所持有的值。

就是这一行

if (res.getString(4).toString() == CustomerSpinner.getSelectedItem().toString()) {

将一直返回false。

您需要实施 ==

,而不是 .equals()

那么,就像

那样
if ((res.getString(4).toString()).equals(CustomerSpinner.getSelectedItem().toString())) {