A library based on JCoder.Db4Net and it support Sqlite. (一个基于JCoder.Db4Net且支持Sqlite的库)
$ dotnet add package JCoder.Db4Net.Sqlite# JCoder.Db4Net.Sqlite
| 属性 | |
|---|---|
| 作者(Authors) | Jackie Law |
| 版权(Copyright) | Copyright © Jackie Law. All rights reserved. |
| 协议 | MIT |
| 联系(QQ) | 1378071853 |
| 联系(Wechat) | JackieLaw1024 |
| 联系(Email) | JackieLaw-dev@outlook.com |
[TOC]
| JCoder.Db4Net.Sqlite | |
|---|---|
| 语言 | C# |
| 协议 | MIT |
| .Net框架 | .Net Standard2.1; .Net Framework 4.7.2; .Net 6; .Net 7; .Net 8; .Net 9; |
| 简述 | Database类库,一个基于JCoder.Db4Net且支持Sqlite的库。 |
| 引用类库 | 版本 |
|---|---|
| JCoder.Db4Net | >=3.0.0 |
| System.Data.SQLite | >=1.0.114.3 |
| 相关类库 | 说明 |
|---|---|
| JCoder.Db4Net | 一款为方便使用数据库的操作类库。 |
| JCoder.Db4Net.Sqlite | 一个基于JCoder.Db4Net且支持Sqlite的库。 |
| JCoder.Db4Net.MySql | 一个基于JCoder.Db4Net且支持Mysql的库。 |
| JCoder.Db4Net.SqlServer | 一个基于JCoder.Db4Net且支持SqlServer的库 。 |
| JCoder.Mock4Net |
| 一款简易版的用于模拟数据的功能库。 |
| JCoder.Log4Net | 一款用于日志记录的类库。 |
| JCoder.Log4Net.Sqlite | 一款使用Sqlite进行日志记录的类库。 |
| JCoder.Ioc4Net | 一款简易款的Ioc操作类库。 |
| 获取方式 | 描述 |
|---|---|
| Package Manager | Install-Package JCoder.Db4Net.Sqlite -Version 3.0.0 |
| .Net CLI | dotnet add package JCoder.Db4Net.Sqlite --version 3.0.0 |
| PackageReference | <PackageReference Include="JCoder.Db4Net.Sqlite" Version="3.0.0" /> |
| Paket CLI | paket add JCoder.Db4Net.Sqlite --version 3.0.0 |
| Script&Interactive | #r "nuget: JCoder.Db4Net.Sqlite, 3.0.0" |
| Cake | // Install as a Cake Addin<br/>#addin nuget:?package=JCoder.Db4Net.Sqlite&version=3.0.0<br/><br/>// Install as a Cake Tool<br/>#tool nuget:?package=JCoder.Db4Net.Sqlite&version=3.0.0 |
| 名称 | 类型 | 描述 |
|---|---|---|
| SqliteTexter | 类 | 主要用于Sqlite的SQL语句的生成。 |
| SqliteBuilder | 类 | 主要用于Sqlite数据库结构的处理。 |
| Sqliter | 类 | 主要用于Sqlite的SQL的执行与处理。 |
| DbSqlite | 类 | 工具类,主要用于Sqlite数据库通用的处理。 |
需要先在项目里引用或加载Sqlite官方库System.Data.SQLite.dll。
IDbOperator _dber = new SQLiteFactoryOperator()
{
ConnectionString = "Data Source=.\data\test.db3;"
};
// Create a new instance.
IDbOperator _dber = new Sqliter()
{
ConnectionString = "Data Source=.\data\test.db3;"
};
// Use the global instance.
IDbOperator _dber = DbHub.GetOperOrNew<Sqliter>();
_dber.ConnectionString = "Data Source=.\data\test.db3;";
// CanConnect(是否能够连接数据库)
if (_dber.CanConnect()) { return; }
// CreateParameter(创建相应的参数)
return _dber.CreateParameter( "ID", 123);
// Execute(执行SQL)
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID","ID123"),
_dber.CreateParameter("Name","Name123"),
_dber.CreateParameter("CreateTime",DateTime.Now),
};
var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
var _count = _dber.Execute(_sql, _parameters);//直接执行SQL
//var _count = _dber.Execute(true,_sql, _parameters);// 使用事务执行SQL
return _count >= 1;
// Execute(执行多条SQL)
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("Value1","ID123"),
_dber.CreateParameter("Value2","Name123"),
_dber.CreateParameter("Value3","Name1456"),
};
var _sqls = new string[]
{
@"insert table3 (Values) values (@Value1);",
@"insert table3 (Values) values (@Value2);",
@"insert table3 (Values) values (@Value3);",
} ;
var _count = _dber.Execute(_sqls, _parameters);//直接执行SQL
//var _count = _dber.Execute(true, _sqls, _parameters);// 使用事务执行SQL
return _count >= 1;
// ExecuteTransaction(使用事务执行指定的SQL)
public void ExecuteTransaction()
{
_dber.StartTransaction();
try
{
for (int i = 0; i < 3; i++)
{
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID",i.ToString()),
_dber.CreateParameter("Name","Name123"),
_dber.CreateParameter("CreateTime",DateTime.Now),
};
var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
var _isSucceed = _dber.ExecuteTransaction(_sql, _parameters);
}
}
catch (Exception ex)
{
_dber.RollbackTransaction();
return;
}
_dber.FinishTransaction();
}
// ExecuteTransaction(使用指定的事务执行指定的SQL)
public void ExecuteTransaction()
{
for (int i = 0; i < 3; i++)
{
var _key = "Transaction" + i.ToString();
_dber.StartTransaction(_key);
var _id = i.ToString() + DateTime.Now.ToLongTimeString();
try
{
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID",_id),
_dber.CreateParameter("Name","Name123"),
_dber.CreateParameter("CreateTime",DateTime.Now),
};
var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
var _isSucceed = _dber.ExecuteTransaction(_key, _sql, _parameters);
}
catch (Exception ex)
{
_dber.RollbackTransaction(_key);
return;
}
if (!_dber.FinishTransaction(_key))
{
return;
}
}
}
// RollbackTransaction(回滚指定的事务)
public void RollbackTransaction()
{
var _key = "Transaction";
_dber.StartTransaction(_key);
var _id = nameof(RollbackTransaction);
try
{
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID",_id),
_dber.CreateParameter("Name","Name123"),
_dber.CreateParameter("CreateTime",DateTime.Now),
};
var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
var _isSucceed = _dber.ExecuteTransaction(_key, _sql, _parameters);
}
catch (Exception ex)
{
_dber.RollbackTransaction(_key);
return;
}
_dber.RollbackTransaction(_key);
}
public DataTable QueryTable()
{
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID",123),
};
var _sql = "select * from table1 where ID=@ID;";
return _dber.QueryTable(_sql, _parameters);
}
public DataSet QueryTables()
{
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID",123),
};
var _sql = "select * from table1 where ID=@ID;";
_sql += "select * from table2 where ID=@ID;";
return _dber.QueryTables(_sql, _parameters);
}
public QueryReader QueryReader()
{
var _parameters = new List<DbParameter>()
{
_dber.CreateParameter("ID",123),
};
var _sql = "select * from table1 where ID=@ID;";
return _dber.QueryReader(_sql, _parameters);
}
public Dictionary<string, string> QueryDictionary()
{
var _sql = "select Key,Value from table1 ;";
return _dber.QueryDictionary<string, string>(_sql);
}
Dictionary<string, string> _dict = _dber.QueryRowAsDictionary("select * from table1 ;");
foreach (var kv in _dict)
{
Console.WriteLine($"[{kv.Key}]{kv.Value}");
}
// 输出 - 有数据时
// [Key001]00327d8c-ddcc-46cc-92d1-9f82dca9374e
// [Column001]阎臭潭
// [Column002]Thithea Tisasheet
// [Column003]2023-02-13 15:44:57.304646
// 输出 - 没有数据时
// [Key001]
// [Column001]
// [Column002]
// [Column003]
public List<string> QueryNames()
{
var _sql = "select Names from table1 ;";
return _dber.QueryValues<string>(_sql);
}
public List<long> QueryValue()
{
var _sql = "select count(1) from table1 ;";
return _dber.QueryScalar<long>(_sql);
}
public bool IsExistData()
{
var _sql = "select 1 from table1 where id=1;";
return _dber.IsExistData(_sql);
}
// 用于生成Sqlite语句
IDbSqlTexter _sqltexter = new SqliteTexter();
// 生成获取当前数据库信息的SQL语句
_sqltexter.GetDatabase();
// 生成获取指定数据库信息的SQL语句
_sqltexter.GetDatabase("database");
// 生成获取数据库信息列表的SQL语句
_sqltexter.GetDatabaseList();
// 生成创建数据库的SQL语句
_sqltexter.CreateDatabase("database");
// 生成删除数据库的SQL语句
_sqltexter.DeleteDatabase("database");
// 生成获取当前数据库的指定数据表的数据列信息的SQL语句
_sqltexter.GetTableColumns("table01");
// 生成获取指定数据库的指定数据表的数据列信息的SQL语句
_sqltexter.GetTableColumns("database","table01");
// 生成获取当前数据库的指定数据表信息的SQL语句SQL语句
_sqltexter.GetTable("table01");
// 生成获取当前数据库的指定数据表信息的SQL语句SQL语句
_sqltexter.GetTable("database","table01");
// 生成获取当前数据库的数据表列表的SQL语句
_sqltexter.GetTableList();
// 生成获取指定数据库的数据表列表的SQL语句
_sqltexter.GetTableList("database");
// 生成删除当前数据库的数据表的SQL语句
_sqltexter.DeleteTable("table01");
// 生成删除指定数据库的数据表的SQL语句
_sqltexter.DeleteTable("database","table01");
// 生成创建数据表的SQL语句
_sqltexter.CreateTable("table01", new List<DbColumn>());
// 生成创建数据表的SQL语句
_sqltexter.CreateTable("database", "table01", new List<DbColumn>());
// 生成获取当前数据库的指定View的数据列信息的SQL语句
_sqltexter.GetViewColumns("view01");
// 生成获取指定数据库的指定View的数据列信息的SQL语句
_sqltexter.GetViewColumns("database","view01");
// 生成获取当前数据库的指定View信息的SQL语句SQL语句
_sqltexter.GetView("view01");
// 生成获取当前数据库的指定View信息的SQL语句SQL语句
_sqltexter.GetView("database","view01");
// 生成获取当前数据库的View列表的SQL语句
_sqltexter.GetViewList();
// 生成获取指定数据库的View列表的SQL语句
_sqltexter.GetViewList("database");
// 生成删除当前数据库的View的SQL语句
_sqltexter.DeleteView("view01");
// 生成删除指定数据库的View的SQL语句
_sqltexter.DeleteView("database","view01");
// 生成获取当前数据库的指定函数信息的SQL语句
_sqltexter.GetFunction("func01");
// 生成获取指定数据库的指定函数信息的SQL语句
_sqltexter.GetFunction("database","func01");
// 生成获取当前数据库的函数列表的SQL语句
_sqltexter.GetFunctionList();
// 生成获取指定数据库的函数列表的SQL语句
_sqltexter.GetFunctionList("database");
// 生成删除当前数据库的Function的SQL语句
_sqltexter.DeleteFunction("func01");
// 生成删除指定数据库指定函数的SQL语句
_sqltexter.DeleteFunction("database","func01");
// 生成获取当前数据库的指定存储过程信息的SQL语句
_sqltexter.GetProcedure("proc01");
// 生成获取指定数据库的指定存储过程信息的SQL语句
_sqltexter.GetProcedure("database","proc01");
// 生成获取当前数据库的存储过程列表的SQL语句
_sqltexter.GetProcedureList();
// 生成获取指定数据库的存储过程列表的SQL语句
_sqltexter.GetProcedureList("database");
// 生成删除当前数据库的Procedure的SQL语句
_sqltexter.DeleteProcedure("proc01");
// 生成删除指定数据库指定存储过程的SQL语句
_sqltexter.DeleteProcedure("database","proc01");