Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想成功地保存数据_Java - Fatal编程技术网

Java 我想成功地保存数据

Java 我想成功地保存数据,java,Java,我有一个JFrame名称的观点。在此表单中,我为每个字段提供了一条错误消息,这意味着每当我填写表单时,如果我将任何字段置为空,然后单击“保存”按钮,则应显示相应的空字段为空的错误消息。我的代码正在保存数据,但当我将任何字段置为空并单击“保存”按钮时,会显示错误消息,说明特定字段为空,但当我单击错误消息框的“确定”按钮时,也会保存数据,但使用该空字段,我的代码为: String name= (String)cbNM.getSelectedItem(); if(name.equals

我有一个JFrame名称的观点。在此表单中,我为每个字段提供了一条错误消息,这意味着每当我填写表单时,如果我将任何字段置为空,然后单击“保存”按钮,则应显示相应的空字段为空的错误消息。我的代码正在保存数据,但当我将任何字段置为空并单击“保存”按钮时,会显示错误消息,说明特定字段为空,但当我单击错误消息框的“确定”按钮时,也会保存数据,但使用该空字段,我的代码为:

    String name= (String)cbNM.getSelectedItem();
    if(name.equals(""))
        JOptionPane.showMessageDialog(null," ENTER THE NAME");

    String socialservice=(String)cbsocial.getSelectedItem();
    if(socialservice.equals(""))
        JOptionPane.showMessageDialog(null," SELECT THE SOCIAL SERVICE");

    String whichservice=tasocial.getText();
    if(whichservice.equals(""))
        JOptionPane.showMessageDialog(null," ENTER SOCIAL SERVICE U LIKE");

    String expectation=taexpectation.getText();
    if(expectation.equals(""))
        JOptionPane.showMessageDialog(null," ENTER UR EXPECTATION FROM WANI SAMAJ");

    String revealinfo=(String)cbreveal.getSelectedItem();
    if(revealinfo.equals(""))
        JOptionPane.showMessageDialog(null,"SELECT UR DECISION ON REVEAL THE INFORMATION");

    String addr=taaddress.getText();
    if(addr.equals(""))
        JOptionPane.showMessageDialog(null," ENTER THE ADDRESS");



    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con=DriverManager.getConnection("jdbc:odbc:wanisamajDB");
        Statement stmt=con.createStatement();
        String qry= "INSERT INTO Opinion(PersonName,LikeSocialService,WhichService,Expectation,RevealInformation,Address) VALUES('"+name+"','"+socialservice+"','"+whichservice+"','"+expectation+"','"+revealinfo+"','"+addr+"')";
        stmt.executeUpdate(qry);
        JOptionPane.showMessageDialog(null,"RECORD IS SAVED SUCCESSFULLY ");
        con.close();

    } catch(SQLException eM) {
        JOptionPane.showMessageDialog(null,"RECORD IS NOT SAVED");
    } catch(Exception et) {
        System.out.println("error:"+et.getMessage());
    }

那是因为你没有阻止它这么做:

if(whichservice.equals(""))
    JOptionPane.showMessageDialog(null," ENTER SOCIAL SERVICE U LIKE");
一旦对
showMessageDialog()
的调用返回,您就可以让它继续执行保存在数据库中的代码

if(whichservice.equals(""))
{
    JOptionPane.showMessageDialog(null," ENTER SOCIAL SERVICE U LIKE");
    return;
}

或者,您可以将代码重组为一系列if/else if,并将保存到数据库的代码包含在最后的
else

那是因为你没有阻止它这么做:

if(whichservice.equals(""))
    JOptionPane.showMessageDialog(null," ENTER SOCIAL SERVICE U LIKE");
一旦对
showMessageDialog()
的调用返回,您就可以让它继续执行保存在数据库中的代码

if(whichservice.equals(""))
{
    JOptionPane.showMessageDialog(null," ENTER SOCIAL SERVICE U LIKE");
    return;
}

或者,您可以将代码重组为一系列if/else if,并将保存到数据库的代码包含在最后的
else

显示消息后,您的方法将继续运行,因为您在任何步骤中都没有中断运行:

if(name.equals(""))
        JOptionPane.showMessageDialog(null," ENTER THE NAME");
基本的解决方案(尽管相当难看)是在消息出现后添加
return

if(name.equals(""))
{
        JOptionPane.showMessageDialog(null," ENTER THE NAME");
        return;
}
一个更好的解决方案是创建一个JTextAreas数组(我想这就是前缀
ta
的意思)和一个复选框/单选按钮数组,并对它们进行迭代。例如:

在init或GUI构建中:

String    tainputnames[] = {"Social Service", "Expectation", "Address"};
JTextArea tainput[] = new JTextArea[tainputnames.length];
for (int i=0; i < tainputnames.length; i++)
{
    tainput[i] = new JTextArea("");
    tainput[i].setName(tainputnames[i]);
}
String tainputnames[]={“社会服务”、“期望”、“地址”};
JTextArea tainput[]=新的JTextArea[tainputnames.length];
for(int i=0;i

在支票上:

for (int i = 0; i < tainputnames.length; i++)
{
    if (tainput[i].getText().equals("")
    {
        OptionPane.showMessageDialog(null, "Enter " + tainputnames[i]);
        return;
    }
}
for(int i=0;i


复选框等也一样。

显示消息后,您的方法将继续运行,因为您在任何步骤中都没有中断运行:

if(name.equals(""))
        JOptionPane.showMessageDialog(null," ENTER THE NAME");
基本的解决方案(尽管相当难看)是在消息出现后添加
return

if(name.equals(""))
{
        JOptionPane.showMessageDialog(null," ENTER THE NAME");
        return;
}
一个更好的解决方案是创建一个JTextAreas数组(我想这就是前缀
ta
的意思)和一个复选框/单选按钮数组,并对它们进行迭代。例如:

在init或GUI构建中:

String    tainputnames[] = {"Social Service", "Expectation", "Address"};
JTextArea tainput[] = new JTextArea[tainputnames.length];
for (int i=0; i < tainputnames.length; i++)
{
    tainput[i] = new JTextArea("");
    tainput[i].setName(tainputnames[i]);
}
String tainputnames[]={“社会服务”、“期望”、“地址”};
JTextArea tainput[]=新的JTextArea[tainputnames.length];
for(int i=0;i

在支票上:

for (int i = 0; i < tainputnames.length; i++)
{
    if (tainput[i].getText().equals("")
    {
        OptionPane.showMessageDialog(null, "Enter " + tainputnames[i]);
        return;
    }
}
for(int i=0;i


复选框等也一样。

两个小贴士1)不要对终端用户大喊大叫。2)避免使用像“U”和“UR”这样的儿童风格的词。它们不会给任何值得你留下深刻印象的人留下深刻印象,它们只会让你看起来像个小丑。有两个小贴士1)不要对你的最终用户大喊大叫。2) 避免使用像“U”和“UR”这样的儿童风格的词。他们没有给任何值得留下深刻印象的人留下深刻印象,他们只是让你看起来像个小丑。+1代表循环示例/解释,尽管我不知道他是否真的准备好:)@Brian-我在下一个答案中理解了。+1代表循环示例/解释,虽然我不知道他是否真的准备好了:)@Brian-我在下一个答案中理解了这一点。