Java和C#访问同一个数据库遇到的一些问题

时间:2021-11-07 19:26:01

搞了一上午,还是没有搞定,到处出错,郁闷了

我自己的工作机上转有DB2、MyEClipse、Visual Studio2010、Sql server2008

其中在MyEclipse用Java可以访问DB2,在Visual Studio2010上用C#可以访问Sql server2008

现在我有一个java程序和C#程序需要访问同一个数据库

可是问题出现了

我本来想让vs2010访问DB2,也在项目中引入了IBM.Data.DB2.dll的类库,可是在运行时却提示我“Error 3 The type or namespace name 'IBM' could not be found (are you missing a using directive or an assembly reference?) ”

代码如下:

 

  static   class  Program
    {
        
///   <summary>
        
///  The main entry point for the application.
        
///   </summary>
        [STAThread]
        
static   void  Main()
        {
            
// Application.EnableVisualStyles();
            
// Application.SetCompatibleTextRenderingDefault(false);
            
// Application.Run(new Main());
            GetDB2();
        }

        
static   void  GetDB2()
        {
            DB2Connection conn 
=   null ;
            DB2Command cmd 
=   null ;
            DB2DataReader reader 
=   null ;
            conn 
=   new  DB2Connection( " DATABASE=CSD;SERVER=10.60.30.85:50000;UID=DB2ADMIN;PWD=IBMDB2 " );
            
try
            {
                conn.Open();
                cmd 
=   new  DB2Command( " select * from TB_CANYOUNG " , conn);
                reader 
=  cmd.ExecuteReader();
                
while  (reader.Read())
                {
                    Console.WriteLine(reader.GetString(
0 +   " \t "   +  reader.GetString( 1 ));
                }
            }
            
catch  (Exception)
            {

                
throw ;
            }
            
finally
            {
                
if  (reader  !=   null )
                    reader.Close();
                
if  (conn  !=   null )
                    conn.Close();
            }
        }
    }

 

这个不行,我就想在java中访问Sql server2008,msbase.jar、mssqlserver.jar、msutil.jar以及sqljdbc.jar四个jar包都引入了,可还是提示我:

Error Trace in getConnection() : [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法打开登录所请求的数据库 "t_name"。登录失败。
Error: No active Connection

 Java代码如下:

 

package  DBHelper;

import  java.sql. * ;
import  java.io. * ;
import  java. * ;
public   class  Connect{
     
private  java.sql.Connection  con  =   null ;
     
private   final  String url  =   " jdbc:microsoft:sqlserver:// " ;
     
private   final  String serverName =   " 127.0.0.1 " ;
     
private   final  String portNumber  =   " 1433 " ;
     
private   final  String databaseName =   " t_name " ;
     
private   final  String userName  =   " sa " ;
     
private   final  String password  =   " 627525 " ;
     
//  Informs the driver to use server a side-cursor, 
     
//  which permits more than one active statement 
     
//  on a connection.
      private   final  String selectMethod  =   " cursor "
     
     
//  Constructor
      public  Connect(){}
     
     
private  String getConnectionUrl(){
          
return  url + serverName + " : " + portNumber + " ;databaseName= " + databaseName + " ;selectMethod= " + selectMethod + " ; " ;
     }
     
     
private  java.sql.Connection getConnection(){
          
try {
               Class.forName(
" com.microsoft.jdbc.sqlserver.SQLServerDriver " ); 
               con 
=  java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
               
if (con != null ) System.out.println( " Connection Successful! " );
          }
catch (Exception e){
               e.printStackTrace();
               System.out.println(
" Error Trace in getConnection() :  "   +  e.getMessage());
         }
          
return  con;
      }
     
/*
   
          Display the driver properties, database details 
     
*/  
     
public   void  displayDbProperties(){
          java.sql.DatabaseMetaData dm 
=   null ;
          java.sql.ResultSet rs 
=   null ;
 
try {
               con
=   this .getConnection();
               
if (con != null ){
                    dm 
=  con.getMetaData();
                    System.out.println(
" Driver Information " );
                    System.out.println(
" \tDriver Name:  " +  dm.getDriverName());
                    System.out.println(
" \tDriver Version:  " +  dm.getDriverVersion ());
                    System.out.println(
" \nDatabase Information  " );
                    System.out.println(
" \tDatabase Name:  " +  dm.getDatabaseProductName());
                    System.out.println(
" \tDatabase Version:  " +  dm.getDatabaseProductVersion());
                    System.out.println(
" Avalilable Catalogs  " );
                    rs 
=  dm.getCatalogs();
                    
while (rs.next()){
                         System.out.println(
" \tcatalog:  " +  rs.getString( 1 ));
                    } 
                    rs.close();
                    rs 
=   null ;
                    closeConnection();
               }
else  System.out.println( " Error: No active Connection " );
          }
catch (Exception e){
               e.printStackTrace();
          }
     dm
= null ;
     }     
     
     
private   void  closeConnection(){
          
try {
               
if (con != null )
                    con.close();
               con
= null ;
          }
catch (Exception e){
               e.printStackTrace();
          }
     }
     
public   static   void  main(String[] args)  throws  Exception
       {
          Connect myDbTest 
=   new  Connect();
          myDbTest.displayDbProperties();
       }
}

 

 

知道的朋友,希望不吝赐教!谢谢

 

 

这个文章发到首页不太合适
想在园子里找个能提问的专区又不知道发到哪里

 

不过

如果这个问题在这里有人提供了很好的解决方案

我想对别人对自己都会有帮助

希望管理员不要删除了,拜托了