Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
S
SQLiteRemote
Project
Project
Details
Activity
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
潘栩锋
SQLiteRemote
Commits
db2a11fc
Commit
db2a11fc
authored
Aug 05, 2020
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
删除 SQLiteHelper
parent
7438b8f6
Pipeline
#110
failed with stages
Changes
10
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
38 additions
and
1340 deletions
+38
-1340
README.md
README.md
+38
-1
App.config
SQLiteHelper/App.config
+0
-4
DBTable.cs
SQLiteHelper/DBTable.cs
+0
-107
IDBTable.cs
SQLiteHelper/IDBTable.cs
+0
-36
IDbBase.cs
SQLiteHelper/IDbBase.cs
+0
-13
IgnoreAttribute.cs
SQLiteHelper/IgnoreAttribute.cs
+0
-30
AssemblyInfo.cs
SQLiteHelper/Properties/AssemblyInfo.cs
+0
-36
SQLiteDbContext.cs
SQLiteHelper/SQLiteDbContext.cs
+0
-187
SQLiteHelper.cs
SQLiteHelper/SQLiteHelper.cs
+0
-856
SQLiteHelper.csproj
SQLiteHelper/SQLiteHelper.csproj
+0
-70
No files found.
README.md
View file @
db2a11fc
# SQLiteRemote
sqlite 局域网远程访问
\ No newline at end of file
sqlite 局域网远程访问
远程代理 是基于 WSCF (WebSocket Communication Foundation) 建立的
WSCF 项目:http://private.flyautomation.net:82/panruising/wscf.git
## RemoteSQLite
**项目主体**
ISQLiteRemoteService
*SQLite服务代理*
<br/>
ISysTimeService
*系统时间*
<br/>
## SQLiteRemoteServerUI
**SQLite服务代理**
<br/>
SQLiteRemoteServerUI 只是 RemoteSQLite.RemoteSQLiteServer 的外壳。
<br/>
使用方法:
<br/>
放在 ###.sqlite3 文件 那台电脑上运行。
<br/>
<br/>
它提供2个服务
<br/>
/SQLiteRemote
*SQLite操作*
1.
ExecuteReader
2.
ExecuteNonQuery
3.
ExecuteScalar
/SysTime
*系统时间操作*
1.
Now
2.
SetTime
*通过网络延时比较准确设置时间*
3.
GetTime
## SQLiteRemoteClientUI
**SQLiteRemoteServiceClient 的测试**
SQLiteHelper/App.config
deleted
100644 → 0
View file @
7438b8f6
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
configuration
>
</
configuration
>
\ No newline at end of file
SQLiteHelper/DBTable.cs
deleted
100644 → 0
View file @
7438b8f6
using
System
;
using
System.Collections.Generic
;
using
System.Data
;
using
System.Linq
;
using
System.Text
;
namespace
SQLite
{
public
class
DBTable
<
T
>
:
IDBTable
where
T
:
new
()
{
public
string
TableName
{
get
;
private
set
;
}
private
long
freeID
=
0
;
/// <summary>
/// 每次获取,自动++
/// </summary>
public
long
FreeID
{
get
{
return
freeID
++;
}
set
{
freeID
=
value
;
}
}
private
string
ddl
;
public
string
DDL
{
get
{
return
ddl
;
}
}
public
SQLiteHelper
sqliteHelper
;
public
DBTable
()
{
TableName
=
SQLiteHelper
.
GetTableName
(
typeof
(
T
));
ddl
=
SQLiteHelper
.
GetCreateTableCommandText
(
typeof
(
T
));
}
public
void
Init
(
SQLiteHelper
sQLiteHelper
)
{
sqliteHelper
=
sQLiteHelper
;
}
public
void
Create
()
{
sqliteHelper
.
ExecuteNonQuery
(
ddl
);
// SQLiteHelper.GetCreateTableCommandText(typeof(T)));//, ArrayFieldTypeInfos.ToArray()));
}
public
void
Add
(
T
t
)
{
sqliteHelper
.
ExecuteNonQuery
(
SQLiteHelper
.
GetInsertCommandText
(
t
));
}
public
void
Update
(
T
t
,
string
condition
)
{
sqliteHelper
.
ExecuteNonQuery
(
SQLiteHelper
.
GetUpdateCommandText
(
t
,
condition
));
}
public
bool
AddRange
(
IEnumerable
<
T
>
array
)
{
List
<
string
>
querys
=
new
List
<
string
>();
foreach
(
T
t
in
array
)
{
querys
.
Add
(
SQLiteHelper
.
GetInsertCommandText
(
t
));
}
return
sqliteHelper
.
QueryTran
(
querys
);
}
public
List
<
T
>
Find
(
string
condition
)
{
string
sql
=
$"SELECT * FROM
{
TableName
}
"
;
if
(!
string
.
IsNullOrEmpty
(
condition
))
sql
+=
" "
+
condition
;
DataTable
dataTable
=
sqliteHelper
.
ExecuteReader
(
sql
);
return
SQLiteHelper
.
ToObjs
<
T
>(
dataTable
);
}
/// <summary>
/// 获取最后N行数据
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
public
List
<
T
>
Last
(
int
count
)
{
return
Find
(
$"LIMIT (SELECT COUNT()-
{
count
}
FROM
{
TableName
}
),
{
count
}
"
);
}
/// <summary>
/// 获取前面N行数据
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
public
List
<
T
>
First
(
int
count
)
{
return
Find
(
$"LIMIT
{
count
}
"
);
}
public
void
Remove
()
{
}
}
}
SQLiteHelper/IDBTable.cs
deleted
100644 → 0
View file @
7438b8f6
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
SQLite
{
public
interface
IDBTable
{
/// <summary>
/// 表名
/// </summary>
string
TableName
{
get
;
}
/// <summary>
/// 表的 Create SQL
/// </summary>
string
DDL
{
get
;
}
/// <summary>
/// 创建表
/// </summary>
void
Create
();
long
FreeID
{
get
;
set
;
}
/// <summary>
/// 初始化
/// </summary>
/// <param name="sQLiteHelper"></param>
void
Init
(
SQLiteHelper
sQLiteHelper
);
}
}
SQLiteHelper/IDbBase.cs
deleted
100644 → 0
View file @
7438b8f6
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
SQLite
{
public
interface
IDbBase
{
Int64
ID
{
get
;
set
;
}
}
}
SQLiteHelper/IgnoreAttribute.cs
deleted
100644 → 0
View file @
7438b8f6
using
System
;
namespace
SQLite
{
public
class
IgnoreAttribute
:
Attribute
{
public
IgnoreAttribute
()
{
}
}
public
class
PropertyIndexAttribute
:
Attribute
{
/// <summary>
/// 标识
/// </summary>
public
int
Index
{
get
;
set
;
}
/// <summary>
///
/// </summary>
/// <param name="index"></param>
public
PropertyIndexAttribute
(
int
index
)
{
Index
=
index
;
}
}
}
\ No newline at end of file
SQLiteHelper/Properties/AssemblyInfo.cs
deleted
100644 → 0
View file @
7438b8f6
using
System.Reflection
;
using
System.Runtime.CompilerServices
;
using
System.Runtime.InteropServices
;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("SQLiteHelper")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SQLiteHelper")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("4cbabfaa-1c62-4510-ac63-a51ee5fd50ff")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
SQLiteHelper/SQLiteDbContext.cs
deleted
100644 → 0
View file @
7438b8f6
using
System
;
using
System.Collections.Generic
;
using
System.Data.SQLite
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
SQLite
{
public
abstract
class
SQLiteDbContext
{
public
List
<
IDBTable
>
DbSet
=
new
List
<
IDBTable
>();
public
SQLiteHelper
sqliteHelper
{
get
;
private
set
;
}
string
ConnectionString
{
get
{
return
string
.
Format
(
"Data Source={0};Version=3;"
,
DBPath
);
}
}
public
string
DBPath
{
get
;
private
set
;
}
=
@"test.sqlite3"
;
public
SQLiteDbContext
(
string
dbPath
)
{
DBPath
=
dbPath
;
Constructor
();
}
void
Constructor
()
{
sqliteHelper
=
new
SQLiteHelper
();
sqliteHelper
.
ConnectionString
=
ConnectionString
;
var
type
=
GetType
();
foreach
(
var
p
in
type
.
GetProperties
())
{
if
(
typeof
(
IDBTable
).
IsAssignableFrom
(
p
.
PropertyType
))
{
DbSet
.
Add
(
p
.
GetValue
(
this
)
as
IDBTable
);
}
}
foreach
(
IDBTable
dBTable
in
DbSet
)
{
dBTable
.
Init
(
sqliteHelper
);
}
}
public
void
SetDBPath
(
string
dbPath
)
{
DBPath
=
dbPath
;
sqliteHelper
.
ConnectionString
=
ConnectionString
;
}
void
Build
()
{
string
directoryname
=
System
.
IO
.
Path
.
GetDirectoryName
(
DBPath
);
if
(!
string
.
IsNullOrEmpty
(
directoryname
)
&&
!
System
.
IO
.
Directory
.
Exists
(
directoryname
))
System
.
IO
.
Directory
.
CreateDirectory
(
directoryname
);
SQLiteConnection
.
CreateFile
(
DBPath
);
foreach
(
IDBTable
dBTable
in
DbSet
)
dBTable
.
Create
();
}
void
Rebuild
()
{
if
(!
System
.
IO
.
File
.
Exists
(
DBPath
))
{
Build
();
}
else
{
//把文件删除,重建
System
.
IO
.
File
.
Delete
(
DBPath
);
Build
();
}
}
void
Load
()
{
foreach
(
var
table
in
DbSet
)
{
table
.
FreeID
=
LoadID
(
table
.
TableName
);
}
}
long
LoadID
(
string
tablename
)
{
string
cmd
=
$"SELECT MAX(ID) FROM
{
tablename
}
"
;
var
reponse
=
sqliteHelper
.
ExecuteScalar
(
cmd
);
if
(
reponse
is
DBNull
)
return
0
;
else
return
System
.
Convert
.
ToInt64
(
reponse
)
+
1
;
}
/// <summary>
/// 给定分区数 检测表是否存在,合法
/// </summary>
/// <param name="nbolts"></param>
/// <returns>false 表不合法,重建; true 正常!</returns>
public
bool
Init
()
{
if
(!
System
.
IO
.
File
.
Exists
(
DBPath
))
{
Build
();
return
false
;
}
//TODO, 表不对删除就好。。。没必要重新创建数据库
//任意一个表不对,或者不存在,都必须重建
Dictionary
<
string
,
string
>
ddls
=
new
Dictionary
<
string
,
string
>();
foreach
(
IDBTable
tb
in
DbSet
)
{
ddls
.
Add
(
tb
.
TableName
,
tb
.
DDL
);
}
bool
isVaild
=
sqliteHelper
.
IsTableValid
(
ddls
,
out
Dictionary
<
string
,
SQLiteHelper
.
IsTableValidResult
>
results
);
if
(!
isVaild
)
//不合法
{
if
(
results
.
Any
(
kv
=>
kv
.
Value
==
SQLiteHelper
.
IsTableValidResult
.
FormatErr
))
{
//先备份
File
.
Copy
(
DBPath
,
DBPath
+
$".
{
DateTime
.
Now
:
yyyyMMddHHmmss
}
.bk"
);
}
//有表 不对
foreach
(
var
kv
in
results
)
{
switch
(
kv
.
Value
)
{
case
SQLiteHelper
.
IsTableValidResult
.
NotHere
:
{
//直接创建表
sqliteHelper
.
ExecuteNonQuery
(
ddls
[
kv
.
Key
]);
}
break
;
case
SQLiteHelper
.
IsTableValidResult
.
FormatErr
:
{
//先删除表,再创建
sqliteHelper
.
ExecuteNonQuery
(
$"DROP TABLE
{
kv
.
Key
}
"
);
sqliteHelper
.
ExecuteNonQuery
(
ddls
[
kv
.
Key
]);
}
break
;
}
}
}
//最后也要加载数据
Load
();
return
isVaild
;
}
/// <summary>
/// 当出错,不重建表
/// </summary>
/// <returns></returns>
public
bool
InitNoBuild
()
{
if
(!
System
.
IO
.
File
.
Exists
(
DBPath
))
{
Build
();
return
false
;
}
//TODO, 表不对删除就好。。。没必要重新创建数据库
//任意一个表不对,或者不存在,都必须重建
Dictionary
<
string
,
string
>
ddls
=
new
Dictionary
<
string
,
string
>();
foreach
(
IDBTable
tb
in
DbSet
)
{
ddls
.
Add
(
tb
.
TableName
,
tb
.
DDL
);
}
if
(
sqliteHelper
.
IsTableValid
(
ddls
))
{
Load
();
return
true
;
}
else
{
return
false
;
}
}
}
}
SQLiteHelper/SQLiteHelper.cs
deleted
100644 → 0
View file @
7438b8f6
This diff is collapsed.
Click to expand it.
SQLiteHelper/SQLiteHelper.csproj
deleted
100644 → 0
View file @
7438b8f6
<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion=
"15.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<Import
Project=
"$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition=
"Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"
/>
<PropertyGroup>
<Configuration
Condition=
" '$(Configuration)' == '' "
>
Debug
</Configuration>
<Platform
Condition=
" '$(Platform)' == '' "
>
AnyCPU
</Platform>
<ProjectGuid>
{4CBABFAA-1C62-4510-AC63-A51EE5FD50FF}
</ProjectGuid>
<OutputType>
Library
</OutputType>
<AppDesignerFolder>
Properties
</AppDesignerFolder>
<RootNamespace>
SQLite
</RootNamespace>
<AssemblyName>
SQLite
</AssemblyName>
<TargetFrameworkVersion>
v4.6.1
</TargetFrameworkVersion>
<FileAlignment>
512
</FileAlignment>
<Deterministic>
true
</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
>
<DebugSymbols>
true
</DebugSymbols>
<DebugType>
full
</DebugType>
<Optimize>
false
</Optimize>
<OutputPath>
bin\Debug\
</OutputPath>
<DefineConstants>
DEBUG;TRACE
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
</PropertyGroup>
<PropertyGroup
Condition=
" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "
>
<DebugType>
pdbonly
</DebugType>
<Optimize>
true
</Optimize>
<OutputPath>
bin\Release\
</OutputPath>
<DefineConstants>
TRACE
</DefineConstants>
<ErrorReport>
prompt
</ErrorReport>
<WarningLevel>
4
</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference
Include=
"System"
/>
<Reference
Include=
"System.ComponentModel.DataAnnotations"
/>
<Reference
Include=
"System.Core"
/>
<Reference
Include=
"System.Xml.Linq"
/>
<Reference
Include=
"System.Data.DataSetExtensions"
/>
<Reference
Include=
"Microsoft.CSharp"
/>
<Reference
Include=
"System.Data"
/>
<Reference
Include=
"System.Net.Http"
/>
<Reference
Include=
"System.Xml"
/>
</ItemGroup>
<ItemGroup>
<Compile
Include=
"DBTable.cs"
/>
<Compile
Include=
"IDbBase.cs"
/>
<Compile
Include=
"IDBTable.cs"
/>
<Compile
Include=
"IgnoreAttribute.cs"
/>
<Compile
Include=
"Properties\AssemblyInfo.cs"
/>
<Compile
Include=
"SQLiteDbContext.cs"
/>
<Compile
Include=
"SQLiteHelper.cs"
/>
</ItemGroup>
<ItemGroup>
<None
Include=
"App.config"
/>
</ItemGroup>
<ItemGroup>
<PackageReference
Include=
"Newtonsoft.Json"
>
<Version>
12.0.3
</Version>
</PackageReference>
<PackageReference
Include=
"NLog"
>
<Version>
4.6.8
</Version>
</PackageReference>
<PackageReference
Include=
"System.Data.SQLite"
>
<Version>
1.0.112
</Version>
</PackageReference>
</ItemGroup>
<Import
Project=
"$(MSBuildToolsPath)\Microsoft.CSharp.targets"
/>
</Project>
\ No newline at end of file
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