开发者社区> 问答> 正文

测试字段是否为空并预防用户将空字段输入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

展开
收起
a123456678 2016-07-18 14:23:45 2632 0
1 条回答
写回答
取消 提交回答
  • 你意思,用户确实是填上值了,但是name却是空的,对吗?

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

    2019-07-17 19:57:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载