sql - Exception generated when updating table - java -
the following code works - table updated (confirmed on sql server looking @ table contents before , after code executed).
but, when run program in netbeans , command line, exception caught catch block "rs = stmt.executequery(sqlquery);" executed.
i know because line "system.out.println("updated successfully!");" before catch block never executed. nor executed if move after "rs = stmt.executequery(sqlquery);".
the exception error is:
run: statement did not return result set. build successful (total time: 0 seconds) i can't understand have done wrong.
i did try using "rs = stmt.executeupdate(sqlquery);" instead of "rs = stmt.executequery(sqlquery);", netbeans has red exclamation mark note when hover on it:
incompatible types required: resultset found: int and if compile it, netbeans spits out:
c:\java\example\src\example\example.java:56: error: incompatible types rs = stmt.executeupdate(sqlquery); ^ required: resultset found: int 1 error grrr. i'm going nuts! please help!
package example; import java.io.bufferedreader; import java.io.filereader; import java.io.filewriter; import java.io.printwriter; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; class example { public static void main(string args[]) { string host = "jdbc:sqlserver://server1\\primrose;databasename=primrose"; string uname = "sa"; string upwd = "pr1m@f@ct"; string sqlquery = ""; int totalfolders = 4; int getrecid = 0; string getuser = ""; string getsection = ""; string getkey = ""; string getvalue = ""; string getextrainfo = ""; try { connection con = drivermanager.getconnection(host, uname, upwd); statement stmt = con.createstatement(); sqlquery = "select * _registry (section = 'recids' , key_ = '_folders' , user_ = 'sc_general')"; resultset rs = stmt.executequery(sqlquery); while (rs.next()) { getrecid = rs.getint("recid"); getuser = rs.getstring("user_"); getsection = rs.getstring("section"); getkey = rs.getstring("key_"); getvalue = rs.getstring("value"); getextrainfo = rs.getstring("extrainfo"); getvalue = getvalue.trim(); // strip trailing spaces string int newvalue = integer.parseint(getvalue) + 1; // convert string number can add total folders newvalue = newvalue + totalfolders; // change total + existing value write db getvalue = integer.tostring(newvalue); // convert string required table } sqlquery = "update _registry set value=" + getvalue + " (recid = 5 , user_ = 'sc_general' , section = 'recids' , key_ = '_folders')"; rs = stmt.executequery(sqlquery); rs.updateint( "recid", getrecid ); rs.updatestring( "user_", getuser ); rs.updatestring( "section", getsection ); rs.updatestring( "key_", getkey ); rs.updatestring( "value", getvalue ); rs.updatestring( "extrainfo", getextrainfo ); rs.updaterow(); system.out.println("updated successfully!"); } catch ( sqlexception err ) { system.out.println( err.getmessage( ) ); } } }
the function "stmt.executeupdate(sqlquery);" returns integer, because not retrieving data database. try this:
integer c = stmt.executeupdate(sqlquery); the integer value indicates how many rows have been changed.
Comments
Post a Comment