本人今天小遇JavaBean,苦恼于其中的数据库连接。
本人于本机SQL server 2000中建立了一个名为J2EE的数据库,名且在其中建了一个表 JavaBean,表里面只有一个属性pinNo,下面程序用以查询这个数据库里边是否存在某个pinNo值,1433端口已经打开。
代码如下 : import javax.swing.*;import java.awt.*;
import java.awt.event.*;
import java.sql.*;
/**
 * @author Administrator
 * 功能说明 :一个登陆界面,用户输入一个pinNo,如果数据库中有此记录,则显示正常登陆的消息,否则也显示相关信息
 *
 */
public class LoginBean extends JPanel{
/**
 * 
 */
private static final long serialVersionUID = 1L;
JLabel logoLabel;
JLabel pinNoLabel;
JTextField pinNoText;
BorderLayout b1;

private String logo = "<Bank> + <Logo>";

public String getLogo(){
return logo;
}
public void setLogo(String text){
logo = text;
logoLabel.setText(logo); // ???
}

public LoginBean(){
super();
logoLabel = new JLabel(logo);
Font font =new Font("Times New Roman",Font.BOLD,30);
logoLabel.setFont(font);
logoLabel.setForeground(Color.DARK_GRAY);
pinNoLabel = new JLabel("Enter Pin Number : ");
pinNoText = new JTextField(6);

b1 = new BorderLayout();
setLayout(b1);

add("North",logoLabel);
add("West",pinNoLabel);
add("East",pinNoText);
}
public void validatePinNo(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ?
Connection conn = DriverManager.getConnection("jdbc:odbc:J2EE","user1",""); // ?
PreparedStatement state = conn.prepareStatement("select * from Login where cPin no  = ?");
state.setString(1, pinNoText.getText());

ResultSet result = state.executeQuery();
if(!result.next()){
JOptionPane.showMessageDialog(this, "Invalited Pin Number", "Error Message", JOptionPane.ERROR_MESSAGE);
}
else{
JOptionPane.showMessageDialog(this, "Valid Pin Number", "Welcone Message", JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception e){
System.out.println("不能执行查询  : "+e);
}
}}
检测Bean的程序 :
public class TestLoginBean { /**
 * @param args
 */
public static void main(String[] args) {
LoginBean obj = new LoginBean(); 
obj.validatePinNo();
}}运行显示 :不能执行查询  : java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序所以,问题求解~~呵呵~~

解决方案 »

  1.   

    在控制面板-->服务-->数据源中配置数据源
      

  2.   

    ("sun.jdbc.odbc.JdbcOdbcDriver"); 这个是sql2000的注册驱动程序方式吗?
    检查清楚再说吧。
      

  3.   

    连接驱动代码(没记错的话^-^)
    Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver ");
    String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JavaBean ";
    Connection con=DriverManager.getConnection(url, "sa ", "sa"); 
    有三个驱动包不知道你导入了没