如何在 HSQLDB 和 C# .net 之间建立连接?我已经看过 SharpHSQL 和 H2Sharp 但无法连接 HSQLDB。
问问题
6181 次
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
基本步骤:
使用 IKVM.NET 将 HSQLDB Java 驱动程序转换为 .NET DLL 以创建hsqldb.dll
将编译时依赖项添加到您的 C# 项目中:
- hsqldb.dll
- IKVM.OpenJDK.Core.dll
- IKVM.OpenJDK.Jdbc.dll
- 运行 C# 程序时添加运行时依赖项:
- IKVM.OpenJDK.Localedata.dll
- IKVM.OpenJDK.Text.dll
- IKVM.OpenJDK.Util.dll
- IKVM.Runtime.dll
- 将连接字符串添加到您的 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();
}
}
}
这是我的详细教程如何从 C# 连接到 HyperSQL
于 2018-06-20T07:22:25.550 回答