Java sql数据拉入列名,但不拉入数据
在这个java方法中,我试图从ms sql server获取数据。我试图从一列中获取int值,现在我使用的列都是int,但由于某种原因,当我尝试将其作为int提取时,我得到一个数字格式错误,表示该列是nvarchar。我不知道发生了什么,也不知道我什么时候运行了系统。我注意到我只提取了列名,但没有该列包含的数据。这是我的方法,我不确定我做错了什么,也不确定我遗漏了什么。任何帮助都将不胜感激,谢谢Java sql数据拉入列名,但不拉入数据,java,sql-server,database,resultset,mssql-jdbc,Java,Sql Server,Database,Resultset,Mssql Jdbc,在这个java方法中,我试图从ms sql server获取数据。我试图从一列中获取int值,现在我使用的列都是int,但由于某种原因,当我尝试将其作为int提取时,我得到一个数字格式错误,表示该列是nvarchar。我不知道发生了什么,也不知道我什么时候运行了系统。我注意到我只提取了列名,但没有该列包含的数据。这是我的方法,我不确定我做错了什么,也不确定我遗漏了什么。任何帮助都将不胜感激,谢谢 private boolean CheckEmployee(long bDays) throws C
private boolean CheckEmployee(long bDays) throws ClassNotFoundException, SQLException {
PreparedStatement preparedStatement;
String type = getTypeOfTimeOff().replaceAll("\\s+","");
Connection conn = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(url, userName, password);
String selectProject = "SELECT ? FROM EmpVacationTbl Where FullName =? "
+ "AND ManagerName =?";
preparedStatement = conn.prepareStatement(selectProject);
preparedStatement.setString(1, getTypeOfTimeOff().replaceAll("\\s+",""));
preparedStatement.setString(2, getEmpName());
preparedStatement.setString(3, getManagerName());
System.out.println(preparedStatement.toString());
try (ResultSet rs = preparedStatement.executeQuery())
{
while (rs.next())
{
//int checker = rs.getInt(1);
String acheck = rs.getString(1);
System.out.println("TIME off the user has : " + acheck);
int checker = Integer.valueOf(acheck);
if(checker < bDays)
{
conn.close();
message = "Too many days";
return false;
}
else
{
conn.close();
return true;
}
}
if (rs.wasNull()) {
{
conn.close();
message = "Unable to find the days";
return false;
}
}
}
conn.close();
message = "Information not matching recordings.";
return false;
}
private boolean CheckEmployee(长b天)抛出ClassNotFoundException、SQLException{
编制报表编制报表;
字符串类型=getTypeOfTimeOff().replaceAll(“\\s+”,”);
连接conn=null;
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
conn=DriverManager.getConnection(url、用户名、密码);
String selectProject=“从EmpVacationTbl中选择”,其中FullName=?”
+“和ManagerName=?”;
preparedStatement=conn.prepareStatement(选择项目);
preparedStatement.setString(1,getTypeOfTimeOff().replaceAll(“\\s+”,”);
setString(2,getEmpName());
setString(3,getManagerName());
System.out.println(preparedStatement.toString());
try(ResultSet rs=preparedStatement.executeQuery())
{
while(rs.next())
{
//int checker=rs.getInt(1);
字符串acheck=rs.getString(1);
System.out.println(“用户的休假时间:“+acheck”);
int checker=Integer.valueOf(acheck);
如果(检查人
像这样出于某种原因,我所做的是在我的查询中添加一个AS,同时在我的代码中添加一个if语句,使resultset与我的代码一起工作,并允许我从数据库中提取数字。谢谢你的帮助。这里是我添加的更新代码,如果它对任何人都有帮助的话
private boolean CheckEmployee(long bDays) throws ClassNotFoundException, SQLException {
PreparedStatement preparedStatement;
Connection conn = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(url, userName, password);
String selectProject = null;
if(getTypeOfTimeOff().equalsIgnoreCase("Vacation Day"))
selectProject = "SELECT VacationDay As dayList FROM EmpVacationTbl Where FullName =? "
+ "AND ManagerName =?";
else if(getTypeOfTimeOff().equalsIgnoreCase("Bonus Day"))
selectProject = "SELECT BonusDay As dayList FROM EmpVacationTbl Where FullName =? "
+ "AND ManagerName =?";
else if(getTypeOfTimeOff().equalsIgnoreCase("Birthday Day"))
selectProject = "SELECT BirthdayDay As dayList FROM EmpVacationTbl Where FullName =? "
+ "AND ManagerName =?";
System.out.println("Query String : " + selectProject);
preparedStatement = conn.prepareStatement(selectProject);
preparedStatement.setString(1, getEmpName());
preparedStatement.setString(2, getManagerName());
System.out.println(preparedStatement.toString());
try (ResultSet rs = preparedStatement.executeQuery())
{
while (rs.next())
{
int checker = 0 ;
checker = rs.getInt("dayList");
System.out.println("Days the user has off are: " + checker );
if(checker < bDays)
{
conn.close();
message = "Too many days";
return false;
}
else
{
conn.close();
return true;
}
}
if (rs.wasNull()) {
{
conn.close();
message = "Unable to find the days";
return false;
}
}
}
conn.close();
message = "Information not matching recordings.";
return false;
}
private boolean CheckEmployee(长b天)抛出ClassNotFoundException、SQLException{
编制报表编制报表;
连接conn=null;
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
conn=DriverManager.getConnection(url、用户名、密码);
字符串selectProject=null;
if(getTypeOfTimeOff().equalsIgnoreCase(“假期”))
selectProject=“从EmpVacationTbl中选择VacationDay作为日期列表,其中FullName=?”
+“和ManagerName=?”;
else if(getTypeOfTimeOff().equalsIgnoreCase(“奖金日”))
selectProject=“从EmpVacationTbl中选择BonuDay作为日期列表,其中FullName=?”
+“和ManagerName=?”;
else if(getTypeOfTimeOff().equalsIgnoreCase(“生日”))
selectProject=“从EmpVacationTbl中选择生日作为日期列表,其中FullName=?”
+“和ManagerName=?”;
System.out.println(“查询字符串:+selectProject”);
preparedStatement=conn.prepareStatement(选择项目);
setString(1,getEmpName());
setString(2,getManagerName());
System.out.println(preparedStatement.toString());
try(ResultSet rs=preparedStatement.executeQuery())
{
while(rs.next())
{
int-checker=0;
checker=rs.getInt(“日列表”);
System.out.println(“用户休假的天数为:“+checker”);
如果(检查人
数据库中的字段值实际上是什么?您是否尝试使用某种工具检查表中的值,例如SQL server附带的工具?String selectProject=“SELECT”FROM EmpVacationTbl Where FullName=?”和ManagerName=?”;
您有一个?在SELECT之后,SELECT?
,您正在为其赋值getTypeOfTimeOff().replaceAll(\\s+,“”)
。您应该输入要检索的列的名称,并删除问号。
private boolean CheckEmployee(long bDays) throws ClassNotFoundException, SQLException {
PreparedStatement preparedStatement;
Connection conn = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(url, userName, password);
String selectProject = null;
if(getTypeOfTimeOff().equalsIgnoreCase("Vacation Day"))
selectProject = "SELECT VacationDay As dayList FROM EmpVacationTbl Where FullName =? "
+ "AND ManagerName =?";
else if(getTypeOfTimeOff().equalsIgnoreCase("Bonus Day"))
selectProject = "SELECT BonusDay As dayList FROM EmpVacationTbl Where FullName =? "
+ "AND ManagerName =?";
else if(getTypeOfTimeOff().equalsIgnoreCase("Birthday Day"))
selectProject = "SELECT BirthdayDay As dayList FROM EmpVacationTbl Where FullName =? "
+ "AND ManagerName =?";
System.out.println("Query String : " + selectProject);
preparedStatement = conn.prepareStatement(selectProject);
preparedStatement.setString(1, getEmpName());
preparedStatement.setString(2, getManagerName());
System.out.println(preparedStatement.toString());
try (ResultSet rs = preparedStatement.executeQuery())
{
while (rs.next())
{
int checker = 0 ;
checker = rs.getInt("dayList");
System.out.println("Days the user has off are: " + checker );
if(checker < bDays)
{
conn.close();
message = "Too many days";
return false;
}
else
{
conn.close();
return true;
}
}
if (rs.wasNull()) {
{
conn.close();
message = "Unable to find the days";
return false;
}
}
}
conn.close();
message = "Information not matching recordings.";
return false;
}