3

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

4

2 回答 2

1

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

在您的 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;
            }
         }
     }

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

于 2013-06-11T03:25:50.337 回答
1

基本步骤:

  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
  1. 运行 C# 程序时添加运行时依赖项:
  • IKVM.OpenJDK.Localedata.dll
  • IKVM.OpenJDK.Text.dll
  • IKVM.OpenJDK.Util.dll
  • IKVM.Runtime.dll
  1. 将连接字符串添加到您的 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();
        }
    }
}

这是我的详细教程如何从 C# 连接到 HyperSQL

于 2018-06-20T07:22:25.550 回答