Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异常:未找到适合jdbc的驱动程序:derby:\\serveraddress\db;create=false_C#_.net_Database_Jdbc_Derby - Fatal编程技术网

C# 异常:未找到适合jdbc的驱动程序:derby:\\serveraddress\db;create=false

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

我知道这个问题已经被问过很多次了。。。但它总是指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\JDK18~1.0\u7\DB-DER~1.0-B\lib\derbytools.jar
  • 用C#编写的代码会抛出上述错误。我也试着改变 这段代码从java到c#,错误是相同的
  • 我很确定这个问题是因为C#看不到 库作为驱动程序(derby.dll和derbytools.dll)
  • 有关于如何将此驱动程序添加到visual studio的建议吗

    C#中的代码:

    JAVA代码:

    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();