如何检查数据库与Android中的一个字段 [英] How to check database with one field in Android

查看:167
本文介绍了如何检查数据库与Android中的一个字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要创建应用程序,在此应用程序中用户可以插入数据。

用户可以插入此数据:名称 - fName 电子邮件 - 地址

此应用程序脱机,我使用 SQLite数据库用于本地数据库。


我想在用户插入数据时,首先我检入数据库,如果在名称列中存在此名称或否?!


如果存在此名称转换为名称列,显示 Toast :此名称存在于名称列中,并且不保存此数据( Name - fName - 电子邮件地址 - 地址)。

strong>此名称转换为名称列,显示 Toast :保存到数据库和保存数据名称 - fName - 电子邮件 - 地址)。


I want create application, in this application users can insert data.
Users can insert this data : Name - fName - Email - Address .
This application is offline and i use SQLite Database for local database.

I want when user inserted data, first of all i check in database, if exist this name in names column or no?!

If exist this name into names columns, show Toast : this name is exist in names columns, and not save this data (Name - fName - Email - Address) into table.
But if not exist this name into names columns, show Toast : save into database, and save data (Name - fName - Email - Address) into table.


如何在我的 DataBaseHelper 类中编写此查询?

How can i write this query in my DataBaseHelper class?

推荐答案

您的问题,您可以对表模式设置唯一约束,具体取决于您是要一个字段是唯一的还是字段的组合是唯一的,如下所示。

As much as I understood your question, you can put make a unique constraint on the table schema depending on whether you want one field to be unique or a combination of field to be unique like below.

在关闭create table语句之前,使用 UNIQUE('Email') c $ c>)。
对于唯一值的组合, UNIQUE('Name','fName','Email','Address')

For one unique value of Email column put UNIQUE('Email') before closing create table statement with ). For combinations of unique values do UNIQUE('Name', 'fName' , 'Email','Address')

当在此表中插入一些重复的值时,它会引发一个异常,您可以在其中显示 Toast 消息。

When you insert some repeated value in this table it will throw an Exception on which you can show Toast message.

编辑

b

    final String CREATE_SOME_TABLE = "CREATE TABLE " + DBContractor.SOMETABLE.TABLE_NAME + " (" +
            DBContractor.SOMETABLE.EMAIL + " TEXT , " +
            DBContractor.SOMETABLE.FNAME + " TEXT, " +
            DBContractor.SOMETABLE.NAME+" TEXT, "+
            DBContractor.SOMETABLE.ADDRESS+" TEXT "+
            "UNIQUE ("+DBContractor.SOMETABLE.NAME+") ON CONFLICT IGNORE"+
    ")";

现在,当您尝试在此插入值

Now when you try to insert values in this like this

    ContentValues values = new ContentValues();
    values.put("Email","Someemail");
    values.put("Name","SomeName");
    values.put("FName","Some Fname");
    values.put("Address","Some Address");
    try {
        mywritabledb.insert(DBContractor.SOMETABLE.TABLE_NAME,null,values);
    }catch (SQLiteException e){
        // show toast here 
    }


$ b b

编辑2
对于来自 http://stackoverflow.com的不区分大小写的唯一约束/ a / 20914992/3758972

表架构为

  final String CREATE_SOME_TABLE = "CREATE TABLE " + DBContractor.SOMETABLE.TABLE_NAME + " (" +
        DBContractor.SOMETABLE.EMAIL + " TEXT , " +
        DBContractor.SOMETABLE.FNAME + " TEXT, " +
        DBContractor.SOMETABLE.NAME+" TEXT, "+
        DBContractor.SOMETABLE.ADDRESS+" TEXT "+
        "UNIQUE ("+DBContractor.SOMETABLE.NAME COLLATE NOCASE+") ON CONFLICT IGNORE"+
")";

这篇关于如何检查数据库与Android中的一个字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆