Sql server 2008 r2 sql异常无效的字符串或缓冲区长度

Sql server 2008 r2 sql异常无效的字符串或缓冲区长度,sql-server-2008-r2,Sql Server 2008 R2,我已经启动了java,并且刚刚完成了核心java…但是由于sqlException,我无法继续。。 我已成功加载驱动程序,并希望执行查询…但每次我发现异常时,如何解决此问题 我的代码如下: if(e.getSource()==b1) { if(t1.getText().equals("")) { JOptionPane.showMessageDialog(null,"provide username to login");

我已经启动了java,并且刚刚完成了核心java…但是由于sqlException,我无法继续。。 我已成功加载驱动程序,并希望执行查询…但每次我发现异常时,如何解决此问题

我的代码如下:

if(e.getSource()==b1)
    {
        if(t1.getText().equals(""))
        {
            JOptionPane.showMessageDialog(null,"provide username to login");
            t1.requestFocus();
        }
        else if(t2.getText().equals(""))
        {
            JOptionPane.showMessageDialog(null,"provide password to login");
            t2.requestFocus();
        }
        else 
        {
            String tablename=null;
            if(rb==1)
            {tablename="Admin";}
            else if(rb==2)
            {tablename="Clerks";}
            else if(rb==3)
            {tablename="members";}
                try
                {
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    Connection con=DriverManager.getConnection("Jdbc:Odbc:librarysystem","","");
                    PreparedStatement ps=con.prepareStatement("select * from "+tablename+" where username=? and password=?");
                    ps.setString(1,t1.getText());
                    ps.setString(2,t2.getText());
                    ResultSet rs=ps.executeQuery();
                    if(rs.next())
                    {
                        //System.out.println(res);
                        //JOptionPane.showMessageDialog(new JFrame(),"Registered user successful");
                        l=new library();
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(new JFrame(),"wrong details entered");
                    }
                }
                catch(Exception sql)
                {

                    t1.setText ("");
                    t2.setText ("");
                    t1.requestFocus ();
                    System.out.println(sql);
                    JOptionPane.showMessageDialog (null, "Incorrect excep Information Provided.");
                }
        }
    }
    else if(e.getSource()==jrb1)
    {
        rb=1;
    }
    else if(e.getSource()==jrb2)
    {
        rb=2;
    }
    else if(e.getSource()==jrb3)
    {
        rb=3;
    }
    else if(e.getSource()==b2)
    {
        f.setVisible(false);
        f.dispose();
        System.exit(152);
    }   
这始终显示:SQLException[Microsoft][ODBC驱动程序管理器]无效字符串或缓冲区长度


请帮助我..fnds

这可能是由于sql登录时的零长度字符串造成的:


Connection con=DriverManager.getConnection(“Jdbc:Odbc:librarysystem”、“sa”、“sa_密码”)

Jdbc:Odbc
应替换为
Jdbc:Odbc