sql server - Java prepared like statement with an integer -


my problem, concerning prepared statements in java:

select trackingid table trackingid = 5735053 

trackingid integer column in database. whe change query to:

select trackingid table trackingid = '5735053' 

it works fine converts automaticly. same goes query:

select trackingid table trackingid '%5735%' 

this works fine , database finding results. in java want pass input value of user query. works string , statement not int:

string query = "select anystring table anystring ?";  connectdatabase();  pstmt = connection.preparestatement(query); pstmt.setstring(1, "%"+input+"%"); result = pstmt.executequery(); 

now want pass integer through statement , have tried many things 0 results. won't work:

string query = "select anyint table anyint ?";  connectdatabase();  pstmt = connection.preparestatement(query); pstmt.setstring(1, "%"+input+"%"); result = pstmt.executequery(); 

but if type query in database programm works fine , finding results. can me here?

you can cast field varchar: cast(anyint varchar). reason works literal sql server knows comparison between int , string , automatically coerce int string. when use parameter, parameter has same type column: int, value %<somenumber>% not valid value (although i'm surprised don't exception).

another option might cast parameter: cast(? varchar). not 100% sure casting parameter supported sql server.


Comments