如何在 HSQLDB 和 C# .net 之间建立连接?
Posted
技术标签:
【中文标题】如何在 HSQLDB 和 C# .net 之间建立连接?【英文标题】:How to form connection between HSQLDB and C# .net? 【发布时间】:2013-04-20 10:28:38 【问题描述】:我已经看过 SharpHSQL 和 H2Sharp 但无法连接 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】:基本步骤:
下载IKVM.NET 和HyperSQL (=HSQLDB) 驱动程序。
使用 IKVM.NET 将 HSQLDB Java 驱动程序转换为 .NET DLL 以创建 hsqldb.dll
将编译时依赖项添加到您的 C# 项目中:
-
在运行 C# 程序时添加运行时依赖项:
-
将连接字符串添加到您的 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>
-
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#
【讨论】:
教程链接失效,请更新一下。谢谢,以上是关于如何在 HSQLDB 和 C# .net 之间建立连接?的主要内容,如果未能解决你的问题,请参考以下文章