【发布时间】:2017-12-28 18:04:27
【问题描述】:
我已经为此搜索了很多次,但找不到可以正常工作的代码。我也尝试过 stackoverflow 的问题推荐,但仍然没有成功。
我在我的java程序中创建了一个搜索功能,在我的测试过程中它工作正常,但是当我在1个按钮中调用所有搜索功能时,唯一有效的是最后一部分不是所有功能,
这是我运行所有函数的示例代码。
public ArrayList<pcfdBoards> ListofInventory(String ValToSearch)
{
ArrayList<pcfdBoards> usersList = new ArrayList<pcfdBoards>();
Statement st;
ResultSet rs;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://ets88-spare:1433;databaseName=users;user=sa;password=test";
Connection conn = DriverManager.getConnection(url);
st = conn.createStatement();
String searchQuery = "SELECT * FROM PCFD WHERE CONCAT(sno,BoardName) LIKE '%"+ValToSearch+"%'";
rs = st.executeQuery(searchQuery);
pcfdBoards user;
while(rs.next())
{
user = new pcfdBoards( rs.getInt("sno"),
rs.getString("Date"),
rs.getString("DieType"),
rs.getString("DeviceName"),
rs.getString("ProgramName"),
rs.getString("ProgramRevision"),
rs.getString("BoardName"),
rs.getString("SerialNumber"),
rs.getString("BoardRevision"),
rs.getString("BoardSlotNumber"),
rs.getString("DIBChannel"),
rs.getString("Area"),
rs.getString("TestOption"),
rs.getString("TestName"),
rs.getString("BinNumber"),
rs.getString("LoadboardSN"),
rs.getString("MotherboardSN"),
rs.getString("AdditionalHW"),
rs.getString("VerifiedBy"),
rs.getString("Datalogs"));
usersList.add(user);
}
}catch(ClassNotFoundException | SQLException ex){
jnote.setBackground(Color.red);
jnote.setText(ex.toString());
}
return usersList;
}
public void boardname() {ArrayList<pcfdBoards> users = ListofInventory(jboardnameSearch.getText());
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(new Object[]{"Item ID","Date","Die Type","Device Name", "Program Name", "Program Revision", "Board Name","Serial Number","Board Revision","Board Slot Number","DIB Channel","Area","Test Option","Test Name","Bin Number","Loadboard SN","Motherboard SN","Additional HW","Verifief By","Datalogs"});
Object[] row = new Object[21];
for(int i = 0; i < users.size(); i++)
{
row[0] = users.get(i).getsno();
row[1] = users.get(i).getDate();
row[2] = users.get(i).getDieType();
row[3] = users.get(i).getDeviceName();
row[4] = users.get(i).getProgramName();
row[5] = users.get(i).getProgramRevision();
row[6] = users.get(i).getBoardName();
row[7] = users.get(i).getSerialNumber();
row[8] = users.get(i).getBoardRevision();
row[9] = users.get(i).getBoardSlotNumber();
row[10] = users.get(i).getDIBChannel();
row[11] = users.get(i).getArea();
row[12] = users.get(i).getTestOption();
row[13] = users.get(i).getTestName();
row[14] = users.get(i).getBinNumber();
row[15] = users.get(i).getLoadboardSN();
row[16] = users.get(i).getMotherboardSN();
row[17] = users.get(i).getAdditionalHW();
row[18] = users.get(i).getVerifiedBy();
row[19] = users.get(i).getDatalogs();
model.addRow(row);
}
jTable1.setModel(model);
}
public ArrayList<pcfdBoards> ListofInventorySN(String ValToSearch)
{
ArrayList<pcfdBoards> usersList = new ArrayList<pcfdBoards>();
Statement st;
ResultSet rs;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://ets88-spare:1433;databaseName=users;user=sa;password=test";
Connection conn = DriverManager.getConnection(url);
st = conn.createStatement();
String searchQuery = "SELECT * FROM PCFD WHERE CONCAT(sno,SerialNumber) LIKE '%"+ValToSearch+"%'";
rs = st.executeQuery(searchQuery);
pcfdBoards user;
while(rs.next())
{
user = new pcfdBoards( rs.getInt("sno"),
rs.getString("Date"),
rs.getString("DieType"),
rs.getString("DeviceName"),
rs.getString("ProgramName"),
rs.getString("ProgramRevision"),
rs.getString("BoardName"),
rs.getString("SerialNumber"),
rs.getString("BoardRevision"),
rs.getString("BoardSlotNumber"),
rs.getString("DIBChannel"),
rs.getString("Area"),
rs.getString("TestOption"),
rs.getString("TestName"),
rs.getString("BinNumber"),
rs.getString("LoadboardSN"),
rs.getString("MotherboardSN"),
rs.getString("AdditionalHW"),
rs.getString("VerifiedBy"),
rs.getString("Datalogs"));
usersList.add(user);
}
}catch(ClassNotFoundException | SQLException ex){
jnote.setBackground(Color.red);
jnote.setText(ex.toString());
}
return usersList;
}
public void serialNum() {ArrayList<pcfdBoards> users = ListofInventorySN(jSerialNumSearch.getText());
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(new Object[]{"Item ID","Date","Die Type","Device Name", "Program Name", "Program Revision", "Board Name","Serial Number","Board Revision","Board Slot Number","DIB Channel","Area","Test Option","Test Name","Bin Number","Loadboard SN","Motherboard SN","Additional HW","Verifief By","Datalogs"});
Object[] row = new Object[21];
for(int i = 0; i < users.size(); i++)
{
row[0] = users.get(i).getsno();
row[1] = users.get(i).getDate();
row[2] = users.get(i).getDieType();
row[3] = users.get(i).getDeviceName();
row[4] = users.get(i).getProgramName();
row[5] = users.get(i).getProgramRevision();
row[6] = users.get(i).getBoardName();
row[7] = users.get(i).getSerialNumber();
row[8] = users.get(i).getBoardRevision();
row[9] = users.get(i).getBoardSlotNumber();
row[10] = users.get(i).getDIBChannel();
row[11] = users.get(i).getArea();
row[12] = users.get(i).getTestOption();
row[13] = users.get(i).getTestName();
row[14] = users.get(i).getBinNumber();
row[15] = users.get(i).getLoadboardSN();
row[16] = users.get(i).getMotherboardSN();
row[17] = users.get(i).getAdditionalHW();
row[18] = users.get(i).getVerifiedBy();
row[19] = users.get(i).getDatalogs();
model.addRow(row);
}
jTable1.setModel(model);
}
如何仅使用一个按钮调用 boardname() 和 serialNum(), 我尝试使用下面的代码,但最后一部分总是有效,而不是全部。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
boardname();
serialNum();
}
【问题讨论】:
-
欢迎来到 Stack Overflow!看来您需要学习使用调试器。请帮助自己了解一些补充调试技术。如果之后您仍有问题,请随时返回 Minimal, Complete, and Verifiable example 来证明您的问题。
-
我不完全清楚你的问题是什么。
-
As your code is now, when jButton1 is selected the methods boardname() is called, then the serialnumber()方法被调用,然后dieType()方法被调用,最后 programName() 方法被调用(按此顺序)。您的所有方法都将被调用,除非上述方法之一中的某些东西停止了程序流程或控制了流程并且永远不允许它返回。很难说,因为您没有显示所有特定方法(函数)的代码。
-
@DevilsHnd 我已经编辑了我的帖子。请再次检查
标签: java