Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
Ftt_Common
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Ftt_Common
Commits
9a81d3ca
Commit
9a81d3ca
authored
Oct 28, 2020
by
tr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、数据访问层优化:后续将SmpDB全部更换为DatabaseHelper
parent
40e82559
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
246 additions
and
40 deletions
+246
-40
DatabaseHelper.cs
Tools/MyData/DatabaseHelper.cs
+235
-0
SmpDB.cs
Tools/MyData/SmpDB.cs
+10
-40
Tools.csproj
Tools/Tools.csproj
+1
-0
No files found.
Tools/MyData/DatabaseHelper.cs
0 → 100644
View file @
9a81d3ca
using
System
;
using
System.Collections.Generic
;
using
System.Data
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
//
using
Tools.MyUtils
;
namespace
Tools.MyData
{
/// <summary>
/// 数据访问帮助类
/// </summary>
public
class
DatabaseHelper
:
IDisposable
{
/// <summary>
/// 数据库访问对象
/// </summary>
SmpDB
_db
=
new
SmpDB
();
/// <summary>
/// 数据库链接
/// </summary>
private
string
_link
=
""
;
/// <summary>
/// 构造函数:数据访问帮助类
/// </summary>
/// <param name="link">链接</param>
public
DatabaseHelper
(
string
link
)
{
this
.
_link
=
link
;
}
/// <summary>
/// 构造函数:数据访问帮助类
/// </summary>
/// <param name="m"></param>
public
DatabaseHelper
(
DbItemModel
m
)
{
this
.
_link
=
m
.
LinkString
;
}
/// <summary>
/// 获取数据表
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <param name="strTableName">获取指定表</param>
/// <returns></returns>
public
DataTable
GetDataTable
(
string
strSql
,
string
strTableName
)
{
return
this
.
_db
.
GetDataTable
(
this
.
_link
,
strSql
,
strTableName
);
}
/// <summary>
/// 获取数据集
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <param name="strTableName">获取指定表</param>
/// <returns></returns>
public
DataSet
GetData
(
string
strSql
,
string
strTableName
)
{
return
this
.
_db
.
GetData
(
this
.
_link
,
strSql
,
strTableName
);
}
/// <summary>
/// 获取数据集
/// </summary>
/// <param name="Tables">表的扩展集合</param>
/// <param name="Schema">是否获取结构信息</param>
/// <returns></returns>
public
DataSet
GetData
(
List
<
TQuery
>
Tables
,
bool
Schema
)
{
return
this
.
_db
.
GetData
(
this
.
_link
,
Tables
,
Schema
);
}
/// <summary>
/// 保存数据表
/// </summary>
/// <param name="dt">待保存表</param>
/// <returns></returns>
public
bool
SaveDataTable
(
DataTable
dt
)
{
return
this
.
_db
.
SaveDataTable
(
this
.
_link
,
dt
);
}
/// <summary>
/// 保存数据集
/// </summary>
/// <param name="ds">待保存的数据集</param>
/// <param name="strTableName">保存数据集中的指定表</param>
/// <returns></returns>
public
bool
SaveData
(
DataSet
ds
,
string
strTableName
)
{
return
this
.
_db
.
SaveData
(
this
.
_link
,
ds
,
strTableName
);
}
/// <summary>
/// 保存数据集
/// </summary>
/// <param name="ds">数据集</param>
/// <param name="Tables">表的扩展集合</param>
/// <returns></returns>
public
bool
SaveData
(
DataSet
ds
,
List
<
TQuery
>
Tables
)
{
return
this
.
_db
.
SaveData
(
this
.
_link
,
ds
,
Tables
);
}
/// <summary>
/// 数据库连接测试
/// </summary>
/// <returns></returns>
public
bool
ConnectionTest
()
{
return
this
.
_db
.
ConnectionTest
(
this
.
_link
);
}
/// <summary>
/// 执行SQL语句:这里的多条语句采用同一事务处理,方便出错时回滚,保证数据统一
/// </summary>
/// <param name="strExecSqlList">带执行的SQL列表</param>
/// <returns></returns>
public
bool
ExecNonSql
(
List
<
string
>
strExecSqlList
)
{
return
this
.
_db
.
ExecNonSql
(
this
.
_link
,
strExecSqlList
);
}
/// <summary>
/// 是否存在
/// </summary>
/// <param name="strSql"></param>
/// <returns></returns>
public
bool
IsExist
(
string
strSql
)
{
return
this
.
_db
.
IsExist
(
this
.
_link
,
strSql
);
}
#
region
async
methods
/// <summary>
/// 单表取数(异步)
/// </summary>
/// <param name="strSql"></param>
/// <param name="strTableName"></param>
/// <returns></returns>
public
Task
<
DataTable
>
GetDataTableAsync
(
string
strSql
,
string
strTableName
)
{
return
Task
.
Run
(()
=>
GetDataTable
(
strSql
,
strTableName
));
}
/// <summary>
/// 单表取数(异步)
/// </summary>
/// <param name="strSql"></param>
/// <param name="strTableName"></param>
/// <returns></returns>
public
Task
<
DataSet
>
GetDataAsync
(
string
strSql
,
string
strTableName
)
{
return
Task
.
Run
(()
=>
GetData
(
strSql
,
strTableName
));
}
/// <summary>
/// 多表取数(异步)
/// </summary>
/// <param name="Tables"></param>
/// <param name="Schema"></param>
/// <returns></returns>
public
Task
<
DataSet
>
GetDataAsync
(
List
<
TQuery
>
Tables
,
bool
Schema
)
{
return
Task
.
Run
(()
=>
GetData
(
Tables
,
Schema
));
}
/// <summary>
/// 单表保存(异步)
/// </summary>
/// <param name="ds"></param>
/// <param name="strTableName"></param>
/// <returns></returns>
public
Task
<
bool
>
SaveDataTableAsync
(
DataTable
dt
,
string
strTableName
)
{
return
Task
.
Run
(()
=>
SaveDataTable
(
dt
));
}
/// <summary>
/// 单表保存(异步)
/// </summary>
/// <param name="ds"></param>
/// <param name="strTableName"></param>
/// <returns></returns>
public
Task
<
bool
>
SaveDataAsync
(
DataSet
ds
,
string
strTableName
)
{
return
Task
.
Run
(()
=>
SaveData
(
ds
,
strTableName
));
}
/// <summary>
/// 多表保存(异步)
/// </summary>
/// <param name="ds"></param>
/// <param name="Tables"></param>
/// <returns></returns>
public
Task
<
bool
>
SaveDataAsync
(
DataSet
ds
,
List
<
TQuery
>
Tables
)
{
return
Task
.
Run
(()
=>
SaveData
(
ds
,
Tables
));
}
/// <summary>
/// 数据库连接测试(异步)
/// </summary>
/// <returns></returns>
public
Task
<
bool
>
ConnectionTestAsync
()
{
return
Task
.
Run
(()
=>
ConnectionTest
());
}
/// <summary>
/// SQL批量执行(异步)
/// </summary>
/// <param name="strExecSqlList"></param>
/// <returns></returns>
public
Task
<
bool
>
ExecNonSqlAsync
(
List
<
string
>
strExecSqlList
)
{
return
Task
.
Run
(()
=>
ExecNonSql
(
strExecSqlList
));
}
/// <summary>
/// 是否存在(异步)
/// </summary>
/// <param name="strSql"></param>
/// <returns></returns>
public
Task
<
bool
>
ISExistAsync
(
string
strSql
)
{
return
Task
.
Run
(()
=>
IsExist
(
strSql
));
}
#
endregion
#
region
实现接口:
IDispose
public
void
Dispose
()
{
this
.
_db
=
null
;
this
.
_link
=
null
;
}
#
endregion
}
}
Tools/MyData/SmpDB.cs
View file @
9a81d3ca
...
@@ -16,40 +16,10 @@ namespace Tools.MyData
...
@@ -16,40 +16,10 @@ namespace Tools.MyData
/// </summary>
/// </summary>
public
class
SmpDB
:
IDisposable
public
class
SmpDB
:
IDisposable
{
{
#
region
IDisposable
Support
#
region
实现接口:
IDisposable
private
bool
disposedValue
=
false
;
// 要检测冗余调用
public
void
Dispose
()
protected
virtual
void
Dispose
(
bool
disposing
)
{
if
(!
disposedValue
)
{
if
(
disposing
)
{
// TODO: 释放托管状态(托管对象)。
}
// TODO: 释放未托管的资源(未托管的对象)并在以下内容中替代终结器。
// TODO: 将大型字段设置为 null。
disposedValue
=
true
;
}
}
// TODO: 仅当以上 Dispose(bool disposing) 拥有用于释放未托管资源的代码时才替代终结器。
// ~SmpDB()
// {
// // 请勿更改此代码。将清理代码放入以上 Dispose(bool disposing) 中。
// Dispose(false);
// }
// 添加此代码以正确实现可处置模式。
void
IDisposable
.
Dispose
()
{
{
// 请勿更改此代码。将清理代码放入以上 Dispose(bool disposing) 中。
Dispose
(
true
);
// TODO: 如果在以上内容中替代了终结器,则取消注释以下行。
// GC.SuppressFinalize(this);
}
}
#
endregion
#
endregion
...
@@ -59,7 +29,7 @@ namespace Tools.MyData
...
@@ -59,7 +29,7 @@ namespace Tools.MyData
/// </summary>
/// </summary>
/// <param name="strLink">数据库连接字串</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="strSql">SQL语句</param>
/// <param name="strSql">SQL语句</param>
/// <param name="str
Link">数据库连接字串
</param>
/// <param name="str
TableName">表名
</param>
/// <returns></returns>
/// <returns></returns>
public
DataTable
GetDataTable
(
string
strLink
,
string
strSql
,
string
strTableName
)
public
DataTable
GetDataTable
(
string
strLink
,
string
strSql
,
string
strTableName
)
{
{
...
@@ -89,7 +59,7 @@ namespace Tools.MyData
...
@@ -89,7 +59,7 @@ namespace Tools.MyData
/// </summary>
/// </summary>
/// <param name="strLink">数据库连接字串</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="strSql">SQL语句</param>
/// <param name="strSql">SQL语句</param>
/// <param name="str
Link">数据库连接字串
</param>
/// <param name="str
TableName">表名
</param>
/// <returns></returns>
/// <returns></returns>
public
DataSet
GetData
(
string
strLink
,
string
strSql
,
string
strTableName
)
public
DataSet
GetData
(
string
strLink
,
string
strSql
,
string
strTableName
)
{
{
...
@@ -171,8 +141,8 @@ namespace Tools.MyData
...
@@ -171,8 +141,8 @@ namespace Tools.MyData
/// 保存数据表
/// 保存数据表
/// <para>单表效率测试:100行0.75秒;500行3.7秒;5000行36秒左右</para>
/// <para>单表效率测试:100行0.75秒;500行3.7秒;5000行36秒左右</para>
/// </summary>
/// </summary>
/// <param name="dt">待保存表</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="dt">待保存表</param>
/// <returns></returns>
/// <returns></returns>
public
bool
SaveDataTable
(
string
strLink
,
DataTable
dt
)
public
bool
SaveDataTable
(
string
strLink
,
DataTable
dt
)
{
{
...
@@ -228,8 +198,8 @@ namespace Tools.MyData
...
@@ -228,8 +198,8 @@ namespace Tools.MyData
/// 保存数据集
/// 保存数据集
/// <para>单表效率测试:100行0.75秒;500行3.7秒;5000行36秒左右</para>
/// <para>单表效率测试:100行0.75秒;500行3.7秒;5000行36秒左右</para>
/// </summary>
/// </summary>
/// <param name="ds">待保存的数据集</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="ds">待保存的数据集</param>
/// <returns></returns>
/// <returns></returns>
public
bool
SaveData
(
string
strLink
,
DataSet
ds
,
string
strTableName
)
public
bool
SaveData
(
string
strLink
,
DataSet
ds
,
string
strTableName
)
{
{
...
@@ -287,8 +257,8 @@ namespace Tools.MyData
...
@@ -287,8 +257,8 @@ namespace Tools.MyData
/// 保存数据集
/// 保存数据集
/// <para>单表效率测试:100行0.76秒;500行3.7秒;5000行37秒左右</para>
/// <para>单表效率测试:100行0.76秒;500行3.7秒;5000行37秒左右</para>
/// </summary>
/// </summary>
/// <param name="ds">数据集</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="strLink">数据库连接字串</param>
/// <param name="ds">数据集</param>
/// <param name="Tables">表的扩展集合</param>
/// <param name="Tables">表的扩展集合</param>
/// <returns></returns>
/// <returns></returns>
public
bool
SaveData
(
string
strLink
,
DataSet
ds
,
List
<
TQuery
>
Tables
)
public
bool
SaveData
(
string
strLink
,
DataSet
ds
,
List
<
TQuery
>
Tables
)
...
@@ -383,7 +353,7 @@ namespace Tools.MyData
...
@@ -383,7 +353,7 @@ namespace Tools.MyData
/// <param name="strLink">数据库连接</param>
/// <param name="strLink">数据库连接</param>
/// <param name="strExecSqlList">带执行的SQL列表</param>
/// <param name="strExecSqlList">带执行的SQL列表</param>
/// <returns></returns>
/// <returns></returns>
public
bool
ExecNonSql
(
string
strLink
,
List
<
string
>
strExecSqlList
,
CommandType
cmdType
=
CommandType
.
Text
)
public
bool
ExecNonSql
(
string
strLink
,
List
<
string
>
strExecSqlList
)
{
{
SqlConnection
conn
=
null
;
SqlConnection
conn
=
null
;
SqlCommand
cmd
=
null
;
SqlCommand
cmd
=
null
;
...
@@ -403,7 +373,7 @@ namespace Tools.MyData
...
@@ -403,7 +373,7 @@ namespace Tools.MyData
foreach
(
string
cmdText
in
strExecSqlList
)
foreach
(
string
cmdText
in
strExecSqlList
)
{
{
cmd
.
CommandText
=
cmdText
;
cmd
.
CommandText
=
cmdText
;
cmd
.
CommandType
=
cmdType
;
cmd
.
CommandType
=
CommandType
.
Text
;
int
ret
=
cmd
.
ExecuteNonQuery
();
int
ret
=
cmd
.
ExecuteNonQuery
();
}
}
//提交事务
//提交事务
...
@@ -581,7 +551,7 @@ namespace Tools.MyData
...
@@ -581,7 +551,7 @@ namespace Tools.MyData
#
endregion
#
endregion
}
}
/// <summary>
/// <summary>
...
...
Tools/Tools.csproj
View file @
9a81d3ca
...
@@ -64,6 +64,7 @@
...
@@ -64,6 +64,7 @@
<Reference
Include=
"System.Xml"
/>
<Reference
Include=
"System.Xml"
/>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<Compile
Include=
"MyData\DatabaseHelper.cs"
/>
<Compile
Include=
"UI\Models\AppModel.cs"
/>
<Compile
Include=
"UI\Models\AppModel.cs"
/>
<Compile
Include=
"MyCommon\Common.cs"
/>
<Compile
Include=
"MyCommon\Common.cs"
/>
<Compile
Include=
"MyCommon\wBasic.cs"
>
<Compile
Include=
"MyCommon\wBasic.cs"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment