搞了一上午,还是没有搞定,到处出错,郁闷了
我自己的工作机上转有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();
}
}
知道的朋友,希望不吝赐教!谢谢
这个文章发到首页不太合适
想在园子里找个能提问的专区又不知道发到哪里
不过
如果这个问题在这里有人提供了很好的解决方案
我想对别人对自己都会有帮助
希望管理员不要删除了,拜托了

作者: RGY_LZY 发表于 2011-07-25 10:48 原文链接
<\0>
<\0>
<\0>
<\0>