【问题标题】:How to form connection between HSQLDB and C# .net?如何在 HSQLDB 和 C# .net 之间建立连接?
【发布时间】:2013-04-20 10:28:38
【问题描述】:

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

【问题讨论】:

  • 您为什么没有将任何解决方案标记为答案?

标签: hsqldb


【解决方案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;
            }
         }
     }

希望对您有所帮助。
干杯...

【讨论】:

  • 如果您不要求所有代码都是本机 C#,这确实是一个可行的解决方案。谢谢你的主意。除了你提到的两个之外,你可能还需要添加更多的 IKVM dll 依赖项。
【解决方案2】:

基本步骤:

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

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

【讨论】:

  • 教程链接失效,请更新一下。谢谢,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2015-09-22
  • 2015-10-30
相关资源
最近更新 更多