The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect.Parameter 8 (""): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision
I keep getting this error
Can anyone please help me with this code? Every time I submit the details of the form in the jsp page i keep getting this exception.
this is the code on the servlet that takes in data from a form on a jsp page. it was working in a previous version and stopped after I changed he
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
MPGBean user2 = new MPGBean();
String prevMiles = request.getParameter("previousMiles");
int pM2 = Integer.parseInt(prevMiles);
System.out.println(pM2);
user2.setPreviousMiles(pM2);
String currMiles = request.getParameter("currentMiles");
int pM3 = Integer.parseInt(prevMiles);
System.out.println(pM2);
user2.setCurrentMiles(pM3);
String noOFLitres = request.getParameter("noOFLitres");
int pM4 = Integer.parseInt(prevMiles);
System.out.println(pM2);
user2.setNoOfLitres(pM4);
String fT = request.getParameter("fuelPrice");
System.out.println("023");
System.out.println(fT);
double fT2 = Double.parseDouble(fT);
System.out.println(fT2);
System.out.println("024");
user2.setFuelPrice(fT2);
System.out.println(user2.getFuelPrice());
System.out.println("022");
user2.setTotalMiles(user2.getCurrentMiles() - user2.getPreviousMiles());
System.out.println(user2.getTotalMiles());
user2.setTotalGallons(user2.getNoOfLitres() / user2.GALLON);
System.out.println(user2.getTotalGallons());
System.out.println("02");
double mps = user2.getTotalMiles() / user2.getTotalGallons();
String mps2 = String.format("%.2f", mps);
double mps3 = Double.parseDouble(mps2);
System.out.println("Decimal"+mps2);
//mpg.setMPG(mpg.getTotalMiles() / mpg.getTotalGallons());
user2.setMPG(mps3);
System.out.println(user2.getMPG());
user2.setTotalPrice(user2.getFuelPrice() * user2.getNoOfLitres());
System.out.println(user2.getTotalPrice());
System.out.println("02");
double cps = (user2.getTotalPrice() / user2.getTotalMiles());
String cps2 = String.format("%.2f", cps);
System.out.println("Decimal"+cps2);
double cps3 = Double.parseDouble(cps2);
user2.setCPM(cps3);
//mpg.setCPM(mpg.getTotalPrice() / mpg.getTotalMiles());
System.out.println(user2.getCPM());
System.out.println("02");
System.out.println("MPG -->" + user2.getMPG() );
System.out.println("CPM -->" + user2.getCPM());
System.out.println("02");
String message = "";
String url = "";
if((currMiles.length() == 0 )||
prevMiles.length() == 0 ||
noOFLitres.length() == 0)
{
message = "Please fill out all te text boxes";
url = "/loginpage.jsp";
}
else if (isDouble(currMiles) == false ||
isDouble(prevMiles) == false ||
isDouble(noOFLitres) == false)
{
message = "Please use only integers!";
url = "/userlogged.jsp";
}
else
{
message = "";
//ServletContext context = getServletContext();
//String path = context.getRealPath("");
user2 = MpgDAO.mpgCalculate(user2);
//url = "";
}
request.setAttribute("user2", user2);
request.setAttribute("message", message);
RequestDispatcher dispatcher = request.getRequestDispatcher(url);
dispatcher.forward(request, response);
}
catch (Throwable theException)
{
System.out.println(theException);
System.out.println("08");
}
}
this is the code for connecting to the database
public static MPGBean mpgCalculate(MPGBean bean2)
{
//preparing some objects for connection
Statement stmt = null;
PreparedStatement pstmt = null;
Connection conn = null;
System.out.println("a");
int totalMiles = bean2.getTotalMiles();
int noOFLitres = bean2.getNoOfLitres();
double mp = bean2.getMPG();
double cp = bean2.getCPM();
double fueltype = bean2.getFuelPrice();
//int fueltype = 0;
/*if(bean2.getFuelPrice() == 1.38)
{
fueltype = 1;
}
else if(bean2.getFuelPrice() == 1.30)
{
fueltype = 2;
}*/
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
java.util.Date today = new java.util.Date();
System.out.println(today);
//System.out.print
//SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
/*DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = formatter.parse(date);
//PreparedStatement pstmt = null;
/*String insertQuery = "insert into mpg_cpmtable (fuel_id, total_miles, No_OF_Litres, date_OF_Sale)" +
"values ("+ fueltype+", "+ totalMiles +","+ noOFLitres+","+sqlDate+" );";*/
// String insertQuery = "insert into mpg_cpmtable (fuel_id, total_miles, No_OF_Litres,MPG,CPM, date_OF_Sale)" +
// "values (?, ?, ? , ?, ?, ?);";
/*String insertQuery ="insert into mpg_cpmtable(fuel_id, total_miles,"
+"no_of_litres,mpg, cpm ,date_of_sale)"
+" values ((select fuel_id from fueltable where fuel_prices = ?)"
+", ?, ?, ?, ?, ?); SELECT @@IDENTITY ";*/
String insertQuery ="insert into mpg_cpmtable(fuel_id, total_miles,"
+"no_of_litres,mpg, cpm ,date_of_sale)"
+" values ((select fuel_id from fueltable where fuel_prices = ?)"
+", ?, ?, ?, ?, ?)";
//String password= bean.getPassword();
//int employeeNumber = bean.getEmployeeNumber();
//String searchName = " ";
System.out.println("b");
//String password = bean.getPassword();
//System.out.println("c");
//username + "' AND password='" + password + "'";
try
{
//connect to DB
currentCon = ConnectionManager.getConnection();
System.out.println("e");
pstmt = currentCon.prepareStatement(insertQuery);
//stmt=currentCon.createStatement();
System.out.println("f");
//CallableStatement statement = null;
//statement = currentCon.prepareCall(insertQuery);
pstmt = currentCon.prepareStatement(insertQuery, Statement.RETURN_GENERATED_KEYS);
java.util.Date date = new java.util.Date();
long t = date.getTime();
System.out.println(t);
java.sql.Date sqlDate = new java.sql.Date(t);
java.sql.Time sqlTime = new java.sql.Time(t);
java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(t);
System.out.println("sqlDate=" + sqlDate);
System.out.println("sqlTime=" + sqlTime);
System.out.println("sqlTimestamp=" + sqlTimestamp);
/* statement.setDouble(1, fueltype);
System.out.println("NNNNN");
statement.setInt(2, totalMiles);
statement.setInt(3, noOFLitres);
statement.setDouble(4, mp);
statement.setDouble(5, cp);
statement.setDate(6, sqlDate);
System.out.println("mmmmmm");
//statement.registerOutParameter(7, Types.NUMERIC);
System.out.println("LLLLLLLL");
//statement.executeUpdate();
System.out.println("UUUUUU");
statement.execute();
//int id = statement.getInt(7);
System.out.println("777777");
//System.out.println(id);
int iUpdCount = statement.getUpdateCount();
boolean bMoreResults = true;
int myIdentVal = -1;
while (bMoreResults || iUpdCount!=-1)
{
rs = statement.getResultSet();
if (rs != null)
{
rs.next();
myIdentVal = rs.getInt(1);
}
}
bMoreResults = statement.getMoreResults();
iUpdCount = statement.getUpdateCount();
System.out.println("GoON Please");
//int myIdentVal = rs.getInt(1);
//int hello = pstmt.getInt(7);
//pstmt.executeUpdate();
System.out.println( "@@IDENTITY is: " + myIdentVal);
System.out.println("Please Please");
statement.close();*/
pstmt.setDouble(1, fueltype);
pstmt.setInt(2, totalMiles);
pstmt.setInt(3, noOFLitres);
pstmt.setDouble(4, mp);
pstmt.setDouble(5, cp);
System.out.println("YY");
pstmt.setDate(6, sqlDate);
System.out.println("XYXX");
pstmt.executeUpdate();
int last_inserted_id =0;
ResultSet rs = pstmt.getGeneratedKeys();
if(rs.next())
{
last_inserted_id = rs.getInt(1);
System.out.println(last_inserted_id);
}
System.out.println(last_inserted_id);
bean2.setTransactionNo(last_inserted_id);
/* pstmt.setDouble(1, fueltype);
pstmt.setInt(2, totalMiles);
pstmt.setInt(3, noOFLitres);
pstmt.setDouble(4, mp);
pstmt.setDouble(5, cp);
pstmt.setDate(6, sqlDate);
//pstmt.registerOutParameter(7);
//int hello = pstmt.getInt(7);
pstmt.executeUpdate();*/
//rs = pstmt.getResultSet();
System.out.println("XXX");
//int hello = rs.getInt(7);
//System.out.println(hello);
// rs = stmt.executeQuery(insertQuery);
//rs = stmt.executeQuery(insertQuery);
System.out.println("g");
//boolean more = rs.next();
System.out.println("h");
// if user does not exist set the isValid variable to false
//if (!more)
//{
//System.out.println("Sorry, you are not a registered user! Please sign up first");
// System.out.println("Sorry, CANNOT FIND DATA");
//System.out.println("i");
//bean2.setValid(false);
//System.out.println("j");
// }
//if user exists set the isValid variable to true
/* else if (more)
{
// String usernameqy = rs.getString("employeeType");
System.out.println("k");
// System.out.println("Welcome " + usernameqy);
System.out.println("l");
System.out.println("m");
bean2.setValid(true);
System.out.println("n");
}*/
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("Failed to insert the record." + e);
}
if (stmt != null)
{
try
{
pstmt.close();
System.out.println("p");
}
catch (Exception e) {}
pstmt = null; }
if (currentCon != null)
{
try { currentCon.close();
pstmt.close();
System.out.println("q");
}
catch (Exception e)
{ }
currentCon = null;
}
return bean2;
Aucun commentaire:
Enregistrer un commentaire