问题一:
JDBC-ODBC桥连接添加SQl server数据源的时候:名称:StudyTest
描述:
服务器:localhostSql server应该如何验证登陆ID的真伪(这个选项卡的选项我选的是默认 下一步的时候出错)
错误:连接失败:
SQLstate:'01000'
SQLserver错误:14
[Microsoft][ODBC SQLserver Driver][DBNETLIB]ConnectionOpen Invalid Instance()连接失败:
SQLstate:'08001'
SQLserver错误:14
[Microsoft][ODBC SQLserver Driver][DBNETLIB]无效的连接这是什么错误啊?我装的是Sql server2005 都配置好了。问题二:
由于桥连接不行,我就采用纯Java驱动方式,但是同样的代码在Eclipse中代码没有提示错误,但是包左边视图文件上却有个错误的红叉,奇怪的是代码没有提示任何错误。
然后我又把代码在MyEclipse中测试,没有任何错误。运行也正常。这是为什么啊?import java.sql.*;  
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;import java.util.*;
class JTable1 extends JFrame
{
JPanel cp = new JPanel();
JTable jtable1;
JScrollPane jscrp1 = new JScrollPane();
public JTable1()
    {
cp = (JPanel)this.getContentPane();
this.setTitle("student result");
this.setSize(500, 200);
cp.setLayout(new FlowLayout());

Connection  con;
Statement sql;
ResultSet rs;
DefaultTableModel dtm;
    //DefaultTableModel是 TableModel 的一个实现,它使用一个 Vector 来存储单元格的值对象,该 Vector 由多个 Vector 组成。 

Vector <Vector> content=new  Vector <Vector>();
Vector <String> title=new Vector <String>();
     
try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } //建立桥接器
catch (java.lang.ClassNotFoundException  e)
{ e.printStackTrace();}  
        try  
        {    
    con= DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;" +
     " DatabaseName=StudyTest","sa","sa");//连接
   
sql=con.createStatement();
sql.execute("use StudyTest");
rs=sql.executeQuery("SELECT  *  FROM  studentInfo");
ResultSetMetaData rsmd=rs.getMetaData();
//ResultSetMetaData可用于获取关于 ResultSet 对象中列的类型和属性信息的对象

for(int i = 1; i <= rsmd.getColumnCount(); i++)//getColumnCount()记录条数
{
         title.add(rsmd.getColumnName(i));//获取列名(对象String)
       
}

while(rs.next())
{
     Vector <String> tmp=new Vector<String>();//一个Vector content包含多个Vector
for(int i = 1; i <= rsmd.getColumnCount(); i++)
tmp.add(rs.getString(i));//获取记录
content.add(tmp);
}
dtm=new DefaultTableModel(content,title);
     
     jtable1 = new JTable(dtm);
jtable1.setRowHeight(20);
    jscrp1.getViewport().add(jtable1);//getViewport()滚动窗格的视口子级
cp.add(jscrp1);
 
con.close();
}   
catch  (SQLException el)
    { el.printStackTrace();} 
    }
}
public  class  SQLTest

public static void main(String args[])

JTable1 JTable1 = new JTable1();
JTable1.setVisible(true);
       }  
}  
在Eclipse和MyEclipse我都导入了驱动包:msbase.jar  mssqlserver.jar   msutil.jar
另外再问一下 为什么 只导入一个 mssqlserver.jar就不行呢?麻烦大家帮下忙,还是新手。

解决方案 »

  1.   

    con= DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;" +
    " DatabaseName=StudyTest","sa","sa");//连接你这句能通过么?
    试试这个
    conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=StudyTest","sa","sa");
      

  2.   

    导包就导一个就OK了, 导sqlserver的包
            
      

  3.   

    为什么不能通过啊? 127.0.0.1代表的就是本地主机,跟localhost的意义是一样的呀。
      

  4.   

    code 放出来 。。我帮你看看
      

  5.   

    ODBC连接不成功,可能是没装驱动,有的数据库要驱动问题二:可能是连接字符串不正确,Lz可以把myEclipse错误日志打开看看
      

  6.   

    try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } //建立桥接器
    catch (java.lang.ClassNotFoundException e)
    { e.printStackTrace();}   
    这个驱动有么? sqlServer驱动
      

  7.   

    确定你的驱动包是对应sql2005的? 不是sql2000的?
    2005的链接字符串应该是
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    jdbc:sqlserver://localhost:1433;databaseName=StudyTest
      

  8.   

    确定啊。 要不然在MyEclipse中就能正常运行呢?
      

  9.   

    我觉得如果驱动都没有问题,那就只有一个原因:没有安装sql的补丁。我记不太清楚了,好像是SQL Server 2000 中文版 SP4 补丁 
    欢迎加入这个QQ群168424095
      

  10.   

    关键问题是,如果缺少补丁,为什么代码在MyEclipse里能正常运行,而在Eclipse里就不行呢?