如何在HSQLDB和C#.net之间建立连接?我已经看过SharpHSQL和H2Sharp,但无法连接HSQLDB。
答案 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)
基本步骤:
使用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>
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#