如何在HSQLDB和C#.net之间建立连接?

时间:2013-04-20 10:28:39

标签: hsqldb

如何在HSQLDB和C#.net之间建立连接?我已经看过SharpHSQL和H2Sharp,但无法连接HSQLDB。

2 个答案:

答案 0 :(得分:1)

尝试这样: 确保您已经添加了hsqldb.dll,IKVM.OpenJDK.Core.dll,IKVM.OpenJDK.Jdbc.dll作为参考。 如果您没有IKVM库,可以下载here

在你的C#:

using java.sql; //add this.

用于创建连接:

private Connection GetConnection()
    {
        DriverManager.registerDriver(new org.hsqldb.jdbcDriver());
        Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://[host]/[db name]", "[username]", "[password]");
        return conn;
    }

如何使用它:

public void LoadSetting(String userId)
    {
        Connection conn = null;
        try
        {
            //Connect it!
            conn = GetConnection();

            string query = "SELECT A.* FROM table A";

            PreparedStatement ps = conn.prepareStatement(query);

            ResultSet rs = ps.executeQuery();
            while (rs.next())
            {
               //Get Query Result
               Console.WriteLn(rs.getString("COL1"));
               Console.WriteLn(rs.getString("COL2"));
            }
         }

         //Close the Connection
         finally
         {
            if (conn != null && !conn.isClosed())
            {
                conn.close();
                conn = null;
            }
         }
     }

希望这有帮助。
干杯...

答案 1 :(得分:0)

基本步骤:

  1. 下载IKVM.NETHyperSQL(= HSQLDB)驱动程序。

  2. 使用IKVM.NET将HSQLDB Java驱动程序转换为.NET DLL,以创建 hsqldb.dll

  3. 向您的C#项目添加编译时依赖项:

    • hsqldb.dll
    • IKVM.OpenJDK.Core.dll
    • IKVM.OpenJDK.Jdbc.dll
  4. 在运行C#程序时添加运行时依赖项:

    • IKVM.OpenJDK.Localedata.dll
    • IKVM.OpenJDK.Text.dll
    • IKVM.OpenJDK.Util.dll
    • IKVM.Runtime.dll
  5. 将连接字符串添加到您的app.config中:


    <configuration>
    
      <connectionStrings>
        <add name="HyperSQL"
            connectionString="jdbc:hsqldb:hsql://localhost:9999/xdb;user=SA;password=;" />
      </connectionStrings>
    
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
      </startup>
    </configuration>

  1. C#代码:

    using System;
    using System.Configuration;

    namespace HyperSQL
    {
        class Program
        {
            readonly static string CONNECTION_STRING = ConfigurationManager.ConnectionStrings["HyperSQL"].ConnectionString;
            const string SQL = "SELECT * FROM customer";

            static void Main(string[] args)
            {
                java.sql.DriverManager.registerDriver(new org.hsqldb.jdbcDriver());
                using (java.sql.Connection conn = java.sql.DriverManager.getConnection(CONNECTION_STRING))
                {
                    java.sql.PreparedStatement ps = conn.prepareStatement(SQL);
                    using (java.sql.ResultSet rs = ps.executeQuery())
                    {
                        while (rs.next())
                        {
                            Console.WriteLine($"ID={rs.getInt("id")}");
                            Console.WriteLine($"NAME={rs.getString("name")}");
                            Console.WriteLine($"AGE={rs.getInt("age")}");
                            Console.WriteLine($"ADDRESS={rs.getString("address")}");
                            Console.WriteLine($"SALARY={rs.getInt("salary")}");

                            Console.WriteLine("------------------");
                        }
                    }
                }

                Console.ReadLine();
            }
        }
    }

这里是我的详细教程how to connect to HyperSQL from C#