gpt4 book ai didi

java - 保存数据时出现问题

转载 作者:行者123 更新时间:2023-12-01 15:53:06 25 4
gpt4 key购买 nike

我的代码工作正常,它正确保存数据,但是当我添加两个字段(即日期和生日)时,它会给出错误,即插入语句中的语法错误。我正在使用 MS ACCESS 作为数据库。在我的数据库中,我对这两个字段使用数据类型编号(即日期和更新)我的代码是:

private void saveREGISTRATION1(java.awt.event.ActionEvent evt) {
int len,len1,len2;

    int regno= Integer.parseInt(cbregn.getSelectedItem().toString());
if(cbregn.getSelectedItem().toString().equals("")){
JOptionPane.showMessageDialog(null," SELECT THE REGISTRATION NO ");
return;
}


int date=Integer.parseInt(tdate.getText());
if(tdate.getText().equals(""))
JOptionPane.showMessageDialog(null," ENTER THE DATE ");

////String date=tdate.getText();//if(日期.等于(""))//JOptionPane.showMessageDialog(null,"输入日期");

    String nm= cbnm.getSelectedItem().toString();
if(nm.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE NAME ");
return;
}


String place=tfplace.getText();
if(place.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE NATIVE PLACE ");
return;
}



String kul=tfkul.getText();
if(kul.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE NAME OF KUL ");
return;
}

String gotra=tfgotra.getText();
if(gotra.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE GOTRA NAME ");
return;
}

String kswami=tfswami.getText();
if(kswami.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE KULSWAMI NAME ");
return;
}

String raddr=taraddr.getText();
if(raddr.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE RESIDENSIAL ADDRESS ");
return;
}

int pincode=Integer.parseInt(tfpcd.getText());
len1 = tfpcd.getText().length();
if(len1!=7) {
JOptionPane.showMessageDialog(null,"Enter The 7 Digit Pin Code","Error",JOptionPane.ERROR_MESSAGE);
return;
}

int stdcd=Integer.parseInt(tfstdcode.getText());
if(tfstdcode.getText().equals("")){
JOptionPane.showMessageDialog(null," ENTER THE STD CODE ");
return;
}


int tele=Integer.parseInt(tftele.getText());
len2 = tftele.getText().length();
if(len2!=7){
JOptionPane.showMessageDialog(null,"Enter The 7 Digit Telephone No","Error",JOptionPane.ERROR_MESSAGE);
return;
}


int mno=(int) Long.parseLong(tfmno.getText());
len = tfmno.getText().length();
if(len!=10) {
JOptionPane.showMessageDialog(null,"Enter The 10 Digit Mobile No","Error",JOptionPane.ERROR_MESSAGE);
return;
}


String email=tfemail.getText();
if(email.equals(""))
JOptionPane.showMessageDialog(null," ENTER THE EMAIL");

if(email.equals("")) {
tfemail.setText("-");

} else // check if it is a valid email-id
{
int ind = email.indexOf("@");
if (ind != -1) { } else {
JOptionPane.showMessageDialog(null,"Invalid Email Id","Error",JOptionPane.ERROR_MESSAGE);
tfemail.setText("");
tfemail.requestFocus();
return;
}
}
String website=tfweb.getText();
if(website.equals(""))
JOptionPane.showMessageDialog(null," ENTER THE WEBSITE ");

if(website.equals("")) {
tfweb.setText("-");
}
else // check if it is a valid email-id
{
int ind = website.indexOf("www");
if (ind != -1) { } else {
JOptionPane.showMessageDialog(null,"Invalid Website","Error",JOptionPane.ERROR_MESSAGE);
tfweb.setText("");
tfweb.requestFocus();
return;
}
}

String education=tfedu.getText();
if(education.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE EDUCATION DETAILS");
return;
}

String branch=tfbrch.getText();
if(branch.equals("")){
JOptionPane.showMessageDialog(null," ENTER THE BRANCH NAME ");
return;
}


int brthdt=Integer.parseInt(tfbdt.getText());
if(tfbdt.getText().equals(""))

//字符串 brthdt=tfbdt.getText();//if(brthdt.equals("")) JOptionPane.showMessageDialog(null,"输入出生日期");

    String bloodgroup=(String)cbbldgrp.getSelectedItem();
if(bloodgroup.equals("")){
JOptionPane.showMessageDialog(null," SELECT THE BLOODGROUP");
return;
}

try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:wanisamajDB");
Statement stmt=con.createStatement();
//String qry= "INSERT INTO Registration1(RegistrationNo,SeniorPerson,NativePlace,Kul,Gotra,KulSwami,ResidensialAddress,PinCode,STDcode,TelephoneNo,MobileNo,Email,Website,Education,Branch,BloodGroup) VALUES('"+regno+"','"+nm+"','"+place+"','"+kul+"','"+gotra+"','"+kswami+"','"+raddr+"','"+pincode+"','"+stdcd+"','"+tele+"','"+mno+"','"+email+"','"+website+"','"+education+"','"+branch+"','"+bloodgroup+"')";
System.out.println("qry");
String qry= "INSERT INTO Registration1(RegistrationNo,SeniorPerson,NativePlace,Kul,Gotra,KulSwami,ResidensialAddress,PinCode,STDcode,TelephoneNo,MobileNo,Email,Website,Education,Branch,BloodGroup,Date,BirthDate) VALUES('"+regno+"','"+nm+"','"+place+"','"+kul+"','"+gotra+"','"+kswami+"','"+raddr+"','"+pincode+"','"+stdcd+"','"+tele+"','"+mno+"','"+email+"','"+website+"','"+education+"','"+branch+"','"+bloodgroup+"','"+date+"','"+brthdt+"')";
stmt.executeUpdate(qry);
JOptionPane.showMessageDialog(null,"RECORD IS SAVED SUCCESSFULLY ");
con.close();

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

}

最佳答案

您的 Java 代码必须生成 Access 数据库引擎可以接受的 INSERT 语句。

在 Access 中,假设两个字段都是日期数据类型,则此语句应该有效。

INSERT INTO tblFoo([Date],BirthDate) Values (#2011/04/09#, #1960/05/10#)

请注意,我将第一个字段的名称括在方括号中。我这样做是为了让数据库引擎知道 Date 是表中字段的名称,不要与 Date() 函数混淆。

Access SQL 使用 # 作为日期文字值的分隔符。

但是,您指出您的“日期”和“出生日期”字段是数字而不是日期数据类型。如果属实,那对我来说似乎是一个设计错误。但无论哪种方式,现有的 INSERT 语句都会尝试将文本值插入到“日期”和“出生日期”字段中。仔细查看 qry 变量赋值的简化版本。

String qry= "INSERT INTO Registration1([Date],BirthDate) VALUES('"+date+"','"+brthdt+"')";

如果 Date 和 BirthDate 是日期数据类型,请将分隔符从单引号更改为哈希字符。

String qry= "INSERT INTO Registration1([Date],BirthDate) VALUES(#"+date+"#,#"+brthdt+"#)";

如果 Date 和 BirthDate 实际上是数字,请将它们更改为日期数据类型。

从根本上来说,当您显然对 Access 的工作原理知之甚少时,您正在尝试将 Java 与 Access 数据库结合使用。因此,您的 Access 问题更难识别,因为它被所有冗长的 Java 内容所掩盖。

我怀疑在 Access session 中创建 SQL 语句会取得更大的成功。一旦您有了数据库引擎可以正确执行的 SQL 语句,就可以使用 Java 代码重新创建该 SQL。

关于java - 保存数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com