测试字段是否为空并预防用户将空字段输入sqlite数据库-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

2016-07-18 14:23:45 2246 1

如何测试该字段不是空值呢? 我想让程序显示一个提示:用户已经完全填充好所有字段,但是下面这段代码还会显示其他情况,比如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)
  • a123456678
    2019-07-17 19:57:51

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

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

    0 0
相关问答

1

回答

如何将Android手机上的SQLite数据库与服务器上的MySQL数据库同步??mysql

2020-05-17 12:04:45 692浏览量 回答数 1

1

回答

SQL Server-测试数据库

2019-12-25 20:49:28 563浏览量 回答数 1

1

回答

Android sqlite 如何将数据在指定时间插入数据库中?

2016-07-18 16:01:30 2763浏览量 回答数 1

1

回答

从SQLite单行索引中收集数据

2016-07-18 14:09:07 1720浏览量 回答数 1

1

回答

Android sqlite 如何将数据在指定时间插入数据库中?

2016-06-20 09:13:03 2020浏览量 回答数 1

1

回答

Android sqlite 把用户名密码,与另外一个表关联起来的方法

2016-06-20 09:38:26 2056浏览量 回答数 1

2

回答

Android SQLite同一DB中创建多表

2016-06-07 09:08:56 2613浏览量 回答数 2

1

回答

Android如何将SQLite数据库中的数据导出为csv格式的文件

2016-06-03 09:35:37 2758浏览量 回答数 1

1

回答

android 真机sqlite3调试问题

2016-06-03 11:20:58 1486浏览量 回答数 1

1

回答

sql 是否可以新建数据库 。svn 是否可以配置在服务器上面

2016-04-20 10:53:44 2319浏览量 回答数 1
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载