android sqlite检查是否插入新值

时间:2015-01-09 15:13:38

标签: android database sqlite tsql

我正在使用sqlite。我成功创建了数据库和表。我还编写了可以在我的表中插入新值的代码。我的代码工作正常,但现在我想显示例如:如果插入新值,则显示toast消息,否则在toast或其他内容中显示错误消息。 这是我对表源代码的插入:

public void InsertToPhysicalPersonTable(String FirstName, String LastName,
        String FullName, String FatherName) {
    try {
        ContentValues newValues = new ContentValues();
        newValues.put("FirstName", FirstName);
        newValues.put("LastName", LastName);
        newValues.put("FullName", FullName);
        newValues.put("FatherName", FatherName);



        db.insert(AddNewPhysicalPerson, null, newValues);
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        Toast.makeText(myContext, "Something wrong", Toast.LENGTH_SHORT).show();
    }

}

我这样调用了我的函数:

loginDataBaseAdapter.InsertToPhysicalPersonTable("FirstName",
                    "LastName",
                    "FullName",
                    "FatherName"
                    );

如果有人知道解决方案,请帮助我。 感谢

3 个答案:

答案 0 :(得分:31)

insert()方法返回新插入行的行ID,如果发生错误则返回-1。

更改

db.insert(AddNewPhysicalPerson, null, newValues);
像这样

long rowInserted = db.insert(AddNewPhysicalPerson, null, newValues);
if(rowInserted != -1)
    Toast.makeText(myContext, "New row added, row id: " + rowInserted, Toast.LENGTH_SHORT).show();
else
    Toast.makeText(myContext, "Something wrong", Toast.LENGTH_SHORT).show();

答案 1 :(得分:2)

long result = db.insert(table name, null, contentvalues);
      if(result==-1)
          return false;
           else
          return true;

这是一个很好的解决方案..

答案 2 :(得分:0)

这是另一种方式:-

我不知道我为您的项目来不及,但是您是否想到了.lastrowid

这里是我last_rec=self.cursor.lastrowid做的一个示例,因此lastrec将插入最后一行的编号。

这是sqlite.org

的信息

希望对您有所帮助,或者您对此有任何疑问的人。

致以最诚挚的问候:¬)

joe