安裝
github hisql 最新源碼下載
也可以通過nuget安裝
hisql.net 官網(文檔編寫中)
HiSql 查詢語句教程
hisql orm 框架insert數據寫入教程
hisql與目前比較流行的ORM框架性能測試對比
注意:HiSql支持framework4.6 .netcore .net5或以上環境
-
選擇您需要支持的數據庫對應的支持包進行安裝 本例使用sqlserver進行演示,請安裝1.0.1.3以上版本
-
連接數據庫
HiSqlClient sqlclient = new HiSqlClient(
new ConnectionConfig()
{
DbType = DBType.SqlServer,
DbServer = "local-HoneBI",
//ConnectionString = "server=192.168.1.90,8433;uid=sa;pwd=Hone@123;database=HoneBI",
ConnectionString = "server=(local);uid=sa;pwd=Hone@123;database=HiSql;",//; MultipleActiveResultSets = true;
Schema = "dbo",
IsEncrypt = true,
IsAutoClose = false,
SqlExecTimeOut = 60000,
AppEvents = new AopEvent()
{
OnDbDecryptEvent = (connstr) =>
{
//解密連接字段
//Console.WriteLine($"數據庫連接:{connstr}");
return connstr;
},
OnLogSqlExecuting = (sql, param) =>
{
//sql執行前 日志記錄 (異步)
//Console.WriteLine($"sql執行前記錄{sql} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}");
},
OnLogSqlExecuted = (sql, param) =>
{
//sql執行后 日志記錄 (異步)
//Console.WriteLine($"sql執行后記錄{sql} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}");
},
OnSqlError = (sqlEx) =>
{
//sql執行錯誤后 日志記錄 (異步)
Console.WriteLine(sqlEx.Message.ToString());
},
OnTimeOut = (int timer) =>
{
//Console.WriteLine($"執行SQL語句超過[{timer.ToString()}]毫秒...");
}
}
}
);
- 第一次使用時需要執行以下方法進行HiSql安裝(只需要執行一次)
sqlclient.CodeFirst.InstallHisql();
4 .檢查是否安裝成功
數據庫中出現以下四張表則安裝成功
下面就可以進行表操作了
建一張測試表【H_Test】 測試一下 sql代碼如下
USE [HiSql]
GO
/****** Object: Table [dbo].[H_Test] Script Date: 2021/10/26 9:37:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[H_Test](
[Hid] [int] NOT NULL,
[UserName] [nchar](50) NULL,
[UserAge] [int] NULL,
[ReName] [nvarchar](50) NULL,
CONSTRAINT [PK_H_Test] PRIMARY KEY CLUSTERED
(
[Hid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[H_Test] ADD CONSTRAINT [DF_H_Test_UserAge] DEFAULT ((0)) FOR [UserAge]
GO
或可以通過實體類來創建表 ,如下實體
[HiTable(IsEdit = true, TabName = "H_Test", TabDescript = "測試表")]
public class H_Test: StandField
{
[HiColumn(FieldDesc = "編號", IsPrimary = true, IsBllKey = true, DBDefault = HiTypeDBDefault.EMPTY, SortNum = 1)]
public int Hid { get; set; }
[HiColumn(FieldDesc = "用戶名", FieldLen = 50, DBDefault = HiTypeDBDefault.EMPTY, SortNum = 2 )]
public string UserName { get; set; }
[HiColumn(FieldDesc = "年齡", DBDefault = HiTypeDBDefault.EMPTY, SortNum = 3)]
public int UserAge { get; set; }
[HiColumn(FieldDesc = "真實姓名", FieldLen = 50, DBDefault = HiTypeDBDefault.EMPTY, SortNum = 4)]
public string ReName { get; set; }
}
再執行以下代碼
Tuple<HiTable, List<HiColumn>> tabomdel = sqlclient.Context.DMInitalize.BuildTabStru(typeof(DemoTable.H_Test));
int v=(int)sqlclient.Context.DBO.ExecCommand(sqlclient.Context.DMTab.BuildTabCreateSql(tabomdel.Item1, tabomdel.Item2, true));
- 通過HiSql ORM SDK 向表[H_Test] 插入數據
sqlclient .Insert("H_Test", new{Hid = 1, UserName = "tansar",UserAge = 100, ReName = "Tom"}).ExecCommand();
- 查詢剛剛插入的數據
DataTable dt_result = sqlclient.Query("H_Test").Field("*").ToTable();