Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sql数据拉入列名,但不拉入数据_Java_Sql Server_Database_Resultset_Mssql Jdbc - Fatal编程技术网

Java sql数据拉入列名,但不拉入数据

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

在这个java方法中,我试图从ms sql server获取数据。我试图从一列中获取int值,现在我使用的列都是int,但由于某种原因,当我尝试将其作为int提取时,我得到一个数字格式错误,表示该列是nvarchar。我不知道发生了什么,也不知道我什么时候运行了系统。我注意到我只提取了列名,但没有该列包含的数据。这是我的方法,我不确定我做错了什么,也不确定我遗漏了什么。任何帮助都将不胜感激,谢谢

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;
}