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