I'm working on a Stock Inventory System software which connects to a Ms Sql server using a JDBC ODBC connection. I want to move the Result Set cursor to the next row and backwards. The connection works and the program can retrieve the fields from the database, so there's no issue with that.
The code that I have here is a on a button labeled "Next". When you click this button it should move to the next row in the database and retrieve the data from that row. The data retrieved should be displayed in the "textfields". The problem is when I click next nothing happens?
private void NextBtnActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbc");
Connection con;
con = DriverManager.getConnection("jdbc:odbc:StockInventory","sa","123");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String query = "select * from Stocktbl";
ResultSet rs;
rs = stmt.executeQuery(query);
if(!rs.isLast()) {
rs.next();
TxtStockid.setText(rs.getString("StockId"));
TxtItem.setText(rs.getString("ItemName"));
TxtQuantity.setText(rs.getString("Quantity"));
TxtUnitprice.setText(rs.getString("UnitPrice"));
TxtNetprice.setText(rs.getString("NetPrice"));
TxtUnitweight.setText(rs.getString("UnitWeight"));
TxtNetweight.setText(rs.getString("Netweight"));
TxtDescription.setText(rs.getString("Description"));
}
rs.close();
stmt.close();
con.close();
}
catch (SQLException ex)
{
Logger.getLogger(StockScr.class.getName()).log(Level.SEVERE, null, ex);
}
catch (ClassNotFoundException ex)
{
Logger.getLogger(StockScr.class.getName()).log(Level.SEVERE, null, ex);
}
}
Here is the rest of the coding for the program, The "Next" button is added to this Panel.
public class StockScr extends javax.swing.JPanel {
ResultSet rs;
Connection con = null;
public StockScr() {
initComponents();
ShowTable();
}
void ShowTable(){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbc");
Connection con;
con = DriverManager.getConnection("jdbc:odbc:StockInventory","sa","123");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String query = "select * from Stocktbl";
ResultSet rs;
rs = stmt.executeQuery(query);
rs.first();
TxtStockid.setText(rs.getString("StockId"));
TxtItem.setText(rs.getString("ItemName"));
TxtQuantity.setText(rs.getString("Quantity"));
TxtUnitprice.setText(rs.getString("UnitPrice"));
TxtNetprice.setText(rs.getString("NetPrice"));
TxtUnitweight.setText(rs.getString("UnitWeight"));
TxtNetweight.setText(rs.getString("Netweight"));
TxtDescription.setText(rs.getString("Description"));
rs.close();
stmt.close();
con.close();
}
catch (SQLException ex)
{
Logger.getLogger(StockScr.class.getName()).log(Level.SEVERE, null, ex);
}
catch (ClassNotFoundException ex)
{
Logger.getLogger(StockScr.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void fetchResultSet()
{
try {
if(con==null || con.isClosed())
{
Class.forName("sun.jdbc.odbc.JdbcOdbc");
con = DriverManager.getConnection("jdbc:odbc:StockInventory","sa","123");
}
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String query = "select * from Stocktbl";
rs = stmt.executeQuery(query);
}catch(Exception ex){
System.out.println(ex);
Logger.getLogger(StockScr.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
if(con != null)
{
con.close();
}
}catch(Exception ex){
}
}
private void NextBtnActionPerformed(java.awt.event.ActionEvent evt) {
try
{
if (rs == null)
{
fetchResultSet();
}
if (rs!=null)
{
if (rs.next())
{
TxtStockid.setText(rs.getString("StockId"));
TxtItem.setText(rs.getString("ItemName"));
TxtQuantity.setText(rs.getString("Quantity"));
TxtUnitprice.setText(rs.getString("UnitPrice"));
TxtNetprice.setText(rs.getString("NetPrice"));
TxtUnitweight.setText(rs.getString("UnitWeight"));
TxtNetweight.setText(rs.getString("Netweight"));
TxtDescription.setText(rs.getString("Description"));
}
else
{
rs = null;
}
}
}catch(Exception ex){
System.out.println(ex);
}
}