2 ssummeraw ssummeraw 于 2013.05.08 09:49 提问

测试字段是否为空并预防用户将空字段输入sqlite数据库

如何测试该字段不是空值呢? 我想让程序显示一个提示:用户已经完全填充好所有字段,但是下面这段代码还会显示其他情况,比如name值为null, number有值的情况。

public void onClick(View arg0)
{
    switch(arg0.getId())
    {
    case R.id.bSQLUpdate:
        boolean diditwork = true;
        try
        {
        String name = sqlName.getText().toString();
        String number = sqlNumber.getText().toString();
        GroupDb entry = new GroupDb(ContactDb.this);
        entry.open();
        if(name != null && number != null)
        {
            if((!entry.hasDuplicateNameNumber(name, number)) )
            {
                entry.createEntry(name, number);

            }
            else
            {
                diditwork = false;
                Dialog d = new Dialog(this);
                d.setTitle("Error");
                TextView tv = new TextView(this);
                tv.setText("Duplicate name or number. Please try again.");
                d.setContentView(tv);
                d.show();
                sqlName.setText("");
                sqlNumber.setText("");
            }
        }
        else
        {
            diditwork = false;
            Dialog d = new Dialog(this);
            d.setTitle("Error");
            TextView tv = new TextView(this);
            tv.setText("Please fill up all fields. Please try again.");
            d.setContentView(tv);
            d.show();
            sqlName.setText("");
            sqlNumber.setText("");
        }

        entry.close();
        }
        catch(Exception e)
        {
            diditwork = false;
            String error = e.toString();
            Dialog d = new Dialog(this);
            d.setTitle("Update failed");
            TextView tv = new TextView(this);
            tv.setText(error);
            d.setContentView(tv);
            d.show();
            sqlName.setText("");
            sqlNumber.setText("");
        }
        finally
        {
            if(diditwork)
            {
                Dialog d = new Dialog(this);
                d.setTitle("Contact list updated");
                TextView tv = new TextView(this);
                tv.setText("Success");
                d.setContentView(tv);
                d.show();
                sqlName.setText("");
                sqlNumber.setText("");
            }
        }
        break;
    case R.id.bSQLOpenView:
        Intent intent = new Intent();
        intent.setClass(ContactDb.this, CustomListView.class);

        startActivityForResult(intent, 0);
        break;

    }
}// end onclick

1个回答

franzhong
franzhong   2013.05.08 12:27

你意思,用户确实是填上值了,但是name却是空的,对吗?

String name = sqlName.getText().toString();
String number = sqlNumber.getText().toString();

你得从这两句往前查了,确定两点,1:name为null? 2:number确实是"输入"的值?
可打个Log跟踪一下
//个人建议入DB的话,String还是去空格后,查length好点

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android中SQLite数据库中空字符串的判断方式
Android中,我们在使用SQLite数据库时,传递一个空指针进去,当你想从数据库获取这个数据时,getString(“key”)获取的值就是“null”,不是空指针null.正确方法使用(null!=value &&!value.equals(“null”) && !value.equals(“”))进行判断
Sqlite中的NULL值和空值的比较
空值是不占用空间的,但是NULL值是占用空间的。那就是说空值是无,NULL本身就是代表着“NULL”的意思,故NULL是另外一种含义的值。      平常使用sqlite数据库时会遇到判断字段值是否为空的情况,一般来说只要跟空值比较就行。但是今天有一个新同事说如果跟NULL值比较是否也可以?针对这种情况,现简单分析一下:      SQLite 的 NULL 是用来表示一个缺失数值的项。表中的一个
sql判断字段是否为空
sql判断字段是否为空 sql语句条件查询时,有时会判断某个字段是否为空。 字段内容为空有两种情况   1.为null   2.为字符串的空'' 语句如下: select * from table where column is null or trim(column)='' 这样就可以排除字段内容为null、''的。   判断某个字段不为空 select
判断android SQLite中的表是否为空
SQLite中的Cursor千万不能使用Cursor == null 来判断是否为空,即便Cursor中什么记录都没有,他也不会是空(已测试)。 判断是否为空的方法是 Cursor.getCount()这么一个简单的函数,如果是0,表示Cursor为空;如果非0,则表示Cursor不为空。 代码如下 int number=0; Cursor c = db.rawQuery("s
判断数据库字段是否为空
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1、SSQL: ISNULL() 语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。 replacement
sqlite 查询去重和 查询空字段
查询去重: public Cursor query(boolean distinct, String table, String[] columns,String selection, String[] selectionArgs, String groupBy,String having, String orderBy, String limit) 其他参数不解释,只解释第一个参数
oracle ,mysql,sqlserver 字段设置默认值是否为空测试
oracle ,mysql,sqlserver 字段设置默认值是否为空测试
case when then 判断某字段是否为null
case when then 判断某字段是否为null? CASE columnName WHEN null THEN 0 ELSE columnName END 虽然columnName 为空,但结果不为0,结果应该为0才对 解决方法:http://yayihouse.com/yayishuwu/chapter/1108
mybatis 插入字段为空的处理
若待插入字段可能为空,则my
数据库库设计:字段是否允许为空的思考
设计数据库表时,是否允许字段为空很长时间我都认为无所谓,但在工作了很长时间后,才发现,其实这个很重要,不能想当然。  之所以会有这个是否为空的选项,就是为了表示未知的情况。但是不是所有的未知情况都应该允许为空呢? 例如,性别,使用1表示男,0表示女,空表示未知或者是用户没有选择。 但又没有更好的方法呢?      首先说下可空字段的问题,          1如果为空,查询条件就必须处理为空的情况