如何根据带有“0”的文本字段条目查询 SQLite 数据库?
How to query SQLite database based on textfield entry with "0's"?
我正在创建一个小型数据库来存储我的工作编号记录。我想以 2 个零 (00) 开始每个作业编号,然后将作业编号放在后面。比如这个《001-2019》。当我去查询数据库时,它不起作用。但是,如果我摆脱零并摆脱任何特殊字符,它就可以正常工作。如何使用零和特殊字符查询数据库?
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String jobNumber = txtJobNumber.getText();
String sql = "SELECT Date FROM JOBCOSTS where Job_Number =" +jobNumber;
try {
pst=conn.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next()) {
String date=rs.getString("Date");
txtJobCostDate.setText(date);
}
}catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
});
首先尝试使用 parametarized query
,因为您已经在使用 Prepared statements
。
String sql = "SELECT Date FROM JOBCOSTS where Job_Number = ?";
pst=conn.prepareStatement(sql);
pst.setString(1, jobNumber);
其次,你的 jobNumber
应该是字符串,这样你的前导零就不会被截断。
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String jobNumber = txtJobNumber.getText();
String sql = "SELECT Date FROM JOBCOSTS where Job_Number ='" +jobNumber+"'";
try {
pst=conn.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next()) {
String date=rs.getString("Date");
txtJobCostDate.setText(date);
}
}catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
});
我正在创建一个小型数据库来存储我的工作编号记录。我想以 2 个零 (00) 开始每个作业编号,然后将作业编号放在后面。比如这个《001-2019》。当我去查询数据库时,它不起作用。但是,如果我摆脱零并摆脱任何特殊字符,它就可以正常工作。如何使用零和特殊字符查询数据库?
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String jobNumber = txtJobNumber.getText();
String sql = "SELECT Date FROM JOBCOSTS where Job_Number =" +jobNumber;
try {
pst=conn.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next()) {
String date=rs.getString("Date");
txtJobCostDate.setText(date);
}
}catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
});
首先尝试使用 parametarized query
,因为您已经在使用 Prepared statements
。
String sql = "SELECT Date FROM JOBCOSTS where Job_Number = ?";
pst=conn.prepareStatement(sql);
pst.setString(1, jobNumber);
其次,你的 jobNumber
应该是字符串,这样你的前导零就不会被截断。
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String jobNumber = txtJobNumber.getText();
String sql = "SELECT Date FROM JOBCOSTS where Job_Number ='" +jobNumber+"'";
try {
pst=conn.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next()) {
String date=rs.getString("Date");
txtJobCostDate.setText(date);
}
}catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
});