C# 异常:未找到适合jdbc的驱动程序:derby:\\serveraddress\db;create=false
我知道这个问题已经被问过很多次了。。。但它总是指JAVA。这次不行C# 异常:未找到适合jdbc的驱动程序:derby:\\serveraddress\db;create=false,c#,.net,database,jdbc,derby,C#,.net,Database,Jdbc,Derby,我知道这个问题已经被问过很多次了。。。但它总是指JAVA。这次不行 代码是使用derbyNET.dll在C#中构建的(并从.jar编译到 .dll(derby.dll和derbytools.dll) 同样的代码是用Java编写的(也使用javac用Java编译) &&java…)只有在程序运行前添加时才能正常工作:set CLASSPATH=C:\PROGRA~1\Java\JDK18~1.0\u7\DB-DER~1.0-B\lib\derby.jar;C:\PROGRA~1\Java\JDK1
try{
{
con = DriverManager.getConnection("jdbc:derby:\\\\serveraddress\\sql\\db;create=false");
Statement sta = con.createStatement();
ResultSet res = sta.executeQuery("SELECT * FROM ADMIN.USER_DATA");
java.lang.System.@out.println("ADMIN.USER_DATA: ");
while (res.next()){
java.lang.System.@out.println(" " + res.getString("USERID") + ", " + res.getString("PASSWORD") + ", " + res.getString("FIRST_NAME") + ", " + res.getString("LAST_NAME") +
", " + res.getString("EMAIL"));
}
res.close();
sta.close();
con.close();
}
}
catch (System.Exception e){
{
java.lang.System.err.println("Exception: " + e.getMessage());
}
}
我已经解决了这个问题。 1) 两个库derbytools.jar和derby.jar必须通过ikvmc编译为.dll并添加为引用 2) 需要添加NuGet包“IKVM.OpenJDK.Jdbc和IKVM.OpenJDK.Core 3) 当前代码为(C#):
您是在尝试创建我们称之为嵌入式连接的(Java术语)还是在尝试创建(Java术语)什么我们称之为客户机-服务器连接?也就是说,连接的另一端是否有Derby网络服务器?用Java术语来说,我一切都很好。数据是从数据库中提取的。问题是C#代码,总是抛出不合适的驱动程序。在运行代码之前,在Java透视图中,我正在设置类路径(使用提到的两个lib)然后是javac&&javamycode.Java——这是可行的。是的,最后是ApacheDerby数据库:)
try{
{
con = DriverManager.getConnection("jdbc:derby:\\\\serveraddress\\sql\\db;create=false");
Statement sta = con.createStatement();
ResultSet res = sta.executeQuery("SELECT * FROM ADMIN.USER_DATA");
java.lang.System.@out.println("ADMIN.USER_DATA: ");
while (res.next()){
java.lang.System.@out.println(" " + res.getString("USERID") + ", " + res.getString("PASSWORD") + ", " + res.getString("FIRST_NAME") + ", " + res.getString("LAST_NAME") +
", " + res.getString("EMAIL"));
}
res.close();
sta.close();
con.close();
}
}
catch (System.Exception e){
{
java.lang.System.err.println("Exception: " + e.getMessage());
}
}
using System;
using System.Diagnostics;
using java.sql;
DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver());
Connection derbyConn = DriverManager.getConnection("jdbc:derby:\\\\serveraddress\\directory\\sql\\db;create=false");
Statement sta = derbyConn.createStatement();
ResultSet res = sta.executeQuery("SELECT * FROM tablename");
java.lang.System.@out.println("tablename: ");
while (res.next())
{
java.lang.System.@out.println(" " + res.getString("1stColumn") + ", " + res.getString("2ndColumn"));
}
res.close()
sta.close();
derbyConn.close();