初始化

This commit is contained in:
2025-12-11 13:49:44 +08:00
commit bf27922d9b
180 changed files with 170396 additions and 0 deletions

View File

@@ -0,0 +1 @@
{"RootPath":"E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02","ProjectFileName":"NT2406_Tool.vbproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Form1.vb"},{"SourceFile":"Form1.Designer.vb"},{"SourceFile":"My Project\\AssemblyInfo.vb"},{"SourceFile":"My Project\\Application.Designer.vb"},{"SourceFile":"My Project\\Resources.Designer.vb"},{"SourceFile":"My Project\\Settings.Designer.vb"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.vb"}],"References":[{"Reference":"D:\\Program Files (x86)\\FlexCell Technologies\\FlexCell.NET4\\Bin\\FlexCell.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02\\bin\\Debug\\NT2406_Tool.exe","OutputItemRelativePath":"NT2406_Tool.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}

BIN
.vs/NT2406_Tool/v16/.suo Normal file

Binary file not shown.

BIN
.vs/NT2406_Tool/v17/.suo Normal file

Binary file not shown.

View File

@@ -0,0 +1,59 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}",
"RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}"
},
{
"AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form",
"RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 223,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Form1.vb",
"DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
"RelativeDocumentMoniker": "Form1.vb",
"ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
"RelativeToolTip": "Form1.vb",
"ViewState": "AgIAAF4DAAAAAAAAAADwv4IDAABEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
"WhenOpened": "2024-06-19T06:39:08.601Z",
"EditorCaption": ""
}
]
},
{
"DockedWidth": 177,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "Form1.vb [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
"RelativeDocumentMoniker": "Form1.vb",
"ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb [\u8BBE\u8BA1]",
"RelativeToolTip": "Form1.vb [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
"WhenOpened": "2024-08-31T08:53:26.538Z",
"EditorCaption": " [\u8BBE\u8BA1]"
}
]
}
]
}
]
}

View File

@@ -0,0 +1,59 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}",
"RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}"
},
{
"AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form",
"RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 223,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Form1.vb",
"DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
"RelativeDocumentMoniker": "Form1.vb",
"ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
"RelativeToolTip": "Form1.vb",
"ViewState": "AgIAAF4DAAAAAAAAAADwv4IDAABEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
"WhenOpened": "2024-06-19T06:39:08.601Z",
"EditorCaption": ""
}
]
},
{
"DockedWidth": 177,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "Form1.vb [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
"RelativeDocumentMoniker": "Form1.vb",
"ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb [\u8BBE\u8BA1]",
"RelativeToolTip": "Form1.vb [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
"WhenOpened": "2024-08-31T08:53:26.538Z",
"EditorCaption": " [\u8BBE\u8BA1]"
}
]
}
]
}
]
}

View File

@@ -0,0 +1 @@
{"RootPath":"H:\\MyCode\\Visual_Basic\\BLV-SetKernelParameter\\SetKernelParameter","ProjectFileName":"SetKernelParameter.vbproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Form1.vb"},{"SourceFile":"Form1.Designer.vb"},{"SourceFile":"My Project\\AssemblyInfo.vb"},{"SourceFile":"My Project\\Application.Designer.vb"},{"SourceFile":"My Project\\Resources.Designer.vb"},{"SourceFile":"My Project\\Settings.Designer.vb"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.vb"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"H:\\MyCode\\Visual_Basic\\BLV-SetKernelParameter\\SetKernelParameter\\bin\\Debug\\SetKernelParameter.exe","OutputItemRelativePath":"SetKernelParameter.exe"},{"OutputItemFullPath":"H:\\MyCode\\Visual_Basic\\BLV-SetKernelParameter\\SetKernelParameter\\bin\\Debug\\SetKernelParameter.pdb","OutputItemRelativePath":"SetKernelParameter.pdb"}],"CopyToOutputEntries":[]}

59
App.config Normal file
View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="NT318校时工具.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.102.0" newVersion="1.0.102.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.2.0.0" newVersion="9.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite.EF6" />
<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
<remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /></DbProviderFactories>
</system.data>
<userSettings>
<NT318校时工具.My.MySettings>
<setting name="SerialPortName" serializeAs="String">
<value />
</setting>
<setting name="SInTime" serializeAs="String">
<value>0</value>
</setting>
</NT318校时工具.My.MySettings>
</userSettings>
</configuration>

View File

@@ -0,0 +1,15 @@

Namespace Database.Base
''' <summary>
''' Contains the schema of a single DB column.
''' </summary>
Public Class ColumnSchema
Public ColumnName As String
Public ColumnType As String
Public Length As Integer
Public IsNullable As Boolean
Public DefaultValue As String
Public IsIdentity As Boolean
Public IsCaseSensitivity As Boolean? = Nothing
End Class
End NameSpace

View File

@@ -0,0 +1,297 @@
Imports System.Text
Namespace Database.Base
Public MustInherit Class CommandHelpers
Public Overridable Function Search(param As SearchParams) As String
Dim searchString As New StringBuilder
'基础查询
searchString.Append("Select")
searchString.Append(" ")
searchString.Append($"{String.Join(",", param.SearchColNames)}")
searchString.Append(" ")
searchString.Append("From")
searchString.Append(" ")
searchString.Append($"`{param.TableName}`")
'筛选条件
If param.SearchCondition IsNot Nothing Then
If param.SearchCondition.Count > 0 Then
searchString.Append(" ")
searchString.Append("Where")
For i As Integer = 0 To param.SearchCondition.Count - 1
If i > 0 Then
searchString.Append(" ")
searchString.Append(param.SearchCondition(i).LogicPrevious.ToString())
End If
searchString.Append(param.SearchCondition(i).ToString())
Next
End If
End If
'排序与排序方式
If param.OrderType <> SearchParams.OrderTypeEnum.None Then
searchString.Append($" Order By {param.OrderColName} {param.OrderType}")
End If
'返回结果行数
If param.Limit > -1 Then
searchString.Append($" Limit {param.Limit}")
End If
searchString.Append(";")
Return searchString.ToString()
End Function
Public Overridable Function SearchAll(tableName As String) As String
Return $"Select * FROM `{tableName}`;"
End Function
Public Overridable Function SearchAll(tableName As String, condition As String) As String
Return $"Select * FROM `{tableName}` WHERE {condition};"
End Function
Public Overridable Function Search(columnName As List(Of String), tableName As String) As String
Dim colNameString As New StringBuilder
For i As Integer = 0 To columnName.Count - 1
If i = 0 Then
colNameString.Append($"`{columnName(i)}`")
Else
colNameString.Append($",`{columnName(i)}`")
End If
Next
Return $"Select {colNameString} FROM `{tableName}`;"
End Function
Public Overridable Function Search(columnName As String, tableName As String) As String
Return $"Select {columnName} FROM `{tableName}`;"
End Function
Public Overridable Function Search(columnName As String, tableName As String, condition As String) As String
Return $"Select {columnName} FROM `{tableName}` WHERE {condition};"
End Function
Public Overridable Function Search(columnName As String, tableName As String, condition As String, limit As Integer) As String
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Limit {limit};"
End Function
Public Overridable Function SearchDistinct(columnName As String, tableName As String) As String
Return $"Select Distinct {columnName} FROM `{tableName}`;"
End Function
Public Overridable Function SearchDistinct(columnName As String, tableName As String, condition As String) As String
Return $"Select Distinct {columnName} FROM `{tableName}` WHERE {condition};"
End Function
Public Overridable Function SearchDescOrder(columnName As String, tableName As String, orderCol As String) As String
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Desc;"
End Function
Public Overridable Function SearchDescOrder(columnName As String, tableName As String, orderCol As String, limit As Integer) As String
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Desc Limit {limit};"
End Function
Public Overridable Function SearchDescOrder(columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String) As String
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By `{orderCol}` Desc;"
End Function
Public Overridable Function SearchDescOrder(columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String, limit As Integer) As String
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By `{orderCol}` Desc Limit {limit};"
End Function
Public Overridable Function SearchAscOrder(ByVal columnName As String, ByVal tableName As String, ByVal orderCol As String) As String
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Asc;"
End Function
Public Overridable Function SearchAscOrder(ByVal columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String) As String
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By {orderCol} Asc;"
End Function
Public Overridable Function SearchNullTable(tableName As String) As String
Return $"Select * FROM `{tableName}` Where Limit 0;"
End Function
Public Overridable Function Insert(ByVal tableName As String, ByVal values As String) As String
Return $"Insert into `{tableName}` Values ( {values} );"
End Function
Public Overridable Function Insert(ByVal tableName As String, ByVal colNames As String, ByVal values As String) As String
Return $"Insert into `{tableName}` ({colNames}) Values ( {values} );"
End Function
Public Overridable Function Insert(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
Dim colNames As New StringBuilder
Dim values As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
If colNames.Length = 0 Then
colNames.Append($"`{keyValuePair.Key}`")
values.Append($"'{keyValuePair.Value}'")
Else
colNames.Append($",`{keyValuePair.Key}`")
values.Append($",'{keyValuePair.Value}'")
End If
Next
Return Insert(tableName, colNames.ToString(), values.ToString())
End Function
Public Overridable Function InsertByParameters(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
Dim colNames As New StringBuilder
Dim values As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
If colNames.Length = 0 Then
colNames.Append($"`{keyValuePair.Key}`")
values.Append($"{keyValuePair.Value}")
Else
colNames.Append($",`{keyValuePair.Key}`")
values.Append($",{keyValuePair.Value}")
End If
Next
Return Insert(tableName, colNames.ToString(), values.ToString())
End Function
Public Overridable Function AddCol(ByVal tableName As String, ByVal colName As String, ByVal colType As String, Optional isNull As Boolean = True) As String
Return $"Alter Table `{tableName}` Add `{colName}` {colType} {IIf(isNull, "Default Null", "Not Null")};"
End Function
Public Overridable Function AddCol(ByVal tableName As String, colParam As DatabaseData) As String
Dim sb As New StringBuilder
sb.Append($"Alter Table `{tableName}` ")
sb.Append("Add ")
sb.Append(colParam.ToAddColString())
Return sb.ToString()
End Function
Public Overridable Function AddCols(tableName As String, colList As List(Of DatabaseData)) As String
Dim sb As New StringBuilder
sb.Append($"Alter Table `{tableName}` ")
sb.Append("Add ")
sb.Append("( ")
sb.Append(colList(0).ToAddColString())
For i As Integer = 1 To colList.Count - 1
sb.Append($",{colList(i).ToAddColString()}")
Next
sb.Append(");")
Return sb.ToString()
End Function
Public Overridable Function Update(ByVal tableName As String, ByVal destStr As String, ByVal condition As String) As String
Return $"Update `{tableName}` Set {destStr} Where {condition};"
End Function
Public Overridable Function Update(ByVal tableName As String, dicNameValues As Dictionary(Of String, String), ByVal condition As String) As String
Dim destStr As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
If destStr.Length = 0 Then
destStr.Append($"`{keyValuePair.Key}` = '{keyValuePair.Value}'")
Else
destStr.Append($",`{keyValuePair.Key}` = '{keyValuePair.Value}'")
End If
Next
Return Update(tableName, destStr.ToString(), condition)
End Function
Public Overridable Function Update(ByVal tableName As String, names() As String, values() As String, condition As String) As String
Dim destStr As New StringBuilder
If names.Length <> values.Length Then
Throw New Exception("DBHelpers_Update:names.Length <> values.Length")
End If
For i As Integer = 0 To names.Length - 1
If i = 0 Then
destStr.Append($"{names(i)} = '{values(i)}'")
Else
destStr.Append($",{names(i)} = '{values(i)}'")
End If
Next
Return Update(tableName, destStr.ToString(), condition)
End Function
Public Overridable Function DeleteRows(ByVal tableName As String, ByVal condition As String) As String
Return $"Delete From `{tableName}` Where {condition};"
End Function
''' <summary>
''' 清空数据表
''' </summary>
''' <param name="tableName">数据表名</param>
''' <returns></returns>
Public Overridable Function DeleteTable(ByVal tableName As String) As String
Return $"Delete From `{tableName}`;"
End Function
Public Overridable Function DropCol(ByVal tableName As String, ByVal colName As String) As String
Return $"Alter Table `{tableName}` Drop Column `{colName}`;"
End Function
''' <summary>
''' 删除数据表
''' </summary>
''' <param name="tableName">数据表名</param>
''' <returns></returns>
Public Overridable Function DropTable(ByVal tableName As String) As String
Return $"Drop Table `{tableName}`;"
End Function
Public Overridable Function CreateTable(ByVal tableName As String, ByVal createStr As String) As String
Return $"Create Table `{tableName}` ( {createStr} );"
End Function
Public Overridable Function CreateTableWhenNotExists(tableName As String, createStr As String) As String
Return $"Create Table if not exists `{tableName}` ( {createStr} );"
End Function
Public Overridable Function CreateLikeTable(tableName As String, baseTableName As String) As String
Return $"create table `{tableName}` like `{baseTableName}`;"
End Function
Public Overridable Function CreateLikeTableNotExists(tableName As String, baseTableName As String) As String
Return $"create table if not exists `{tableName}` like `{baseTableName}`;"
End Function
''' <summary>
''' 创建表,同时复制基础表数据(不包含原表索引与主键)
''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="baseTableName">基础表名</param>
''' <returns></returns>
Public Overridable Function CreateCopyTable(tableName As String, baseTableName As String) As String
Return $"create table `{tableName}` as select * from `{baseTableName}`;"
End Function
''' <summary>
''' 不存在表时即创建表,同时复制基础表数据(不包含原表索引与主键)
''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="baseTableName">基础表名</param>
''' <returns></returns>
Public Overridable Function CreateCopyTableNotExists(tableName As String, baseTableName As String) As String
Return $"create table if not exists `{tableName}` as select * from `{baseTableName}`;"
End Function
''' <summary>
''' 复制基础表数据到新表中
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="baseTableName">基础表名</param>
''' <returns></returns>
Public Overridable Function InsertCopyTable(tableName As String, baseTableName As String) As String
Return $"insert into `{tableName}` select * from `{baseTableName}`;"
End Function
End Class
End Namespace

View File

@@ -0,0 +1,94 @@
Imports System.Text
Namespace Database.Base
Public Class DatabaseData
Enum TypeEnum
[Bit]
[Char]
[Date]
[DateTime]
[Double]
[Enum]
[Float]
[Int]
[IntUnsigned]
[Json]
[Text]
[Time]
Varchar
[Year]
End Enum
''' <summary>
''' 列名
''' </summary>
''' <returns></returns>
Public Property ColumnName() As String
''' <summary>
''' 当前值
''' </summary>
''' <returns></returns>
Public Property Value() As String
''' <summary>
''' 默认值
''' </summary>
''' <returns></returns>
Public Property DefaultValue() As String
''' <summary>
''' 数据类型
''' </summary>
''' <returns></returns>
Public Property DataType() As TypeEnum
''' <summary>
''' 数据类型长度
''' </summary>
''' <returns></returns>
Public Property DataTypeLength() As Integer
''' <summary>
''' 是否允许为空
''' </summary>
''' <returns></returns>
Public Property IsNull() As Boolean = True
''' <summary>
''' 是否自动增长
''' </summary>
''' <returns></returns>
Public Property IsAutoIncrement() As Boolean
''' <summary>
''' 是否为主键
''' </summary>
''' <returns></returns>
Public Property IsPrimaryKey() As Boolean
Public Function ToAddColString() As String
Dim sb As New StringBuilder
sb.Append($"`{ColumnName}`")
Select Case DataType
Case TypeEnum.Char, TypeEnum.Varchar
sb.Append($" {DataType}({DataTypeLength}) ")
Case TypeEnum.Int
sb.Append($" {DataType}")
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
Case Else
sb.Append($" {DataType}")
End Select
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
If IsPrimaryKey Then
sb.Append($" PRIMARY KEY")
End If
Return sb.ToString()
End Function
End Class
End Namespace

View File

@@ -0,0 +1,12 @@
Imports System.Collections.Generic
Namespace Database.Base
''' <summary>
''' Contains the entire database schema
''' </summary>
Public Class DatabaseSchema
Public Tables As List(Of TableSchema) = New List(Of TableSchema)()
Public Views As List(Of ViewSchema) = New List(Of ViewSchema)()
End Class
End NameSpace

View File

@@ -0,0 +1,11 @@

Namespace Database.Base
Public Class ForeignKeySchema
Public TableName As String
Public ColumnName As String
Public ForeignTableName As String
Public ForeignColumnName As String
Public CascadeOnDelete As Boolean
Public IsNullable As Boolean
End Class
End NameSpace

View File

@@ -0,0 +1,16 @@
Imports System.Collections.Generic
Namespace Database.Base
Public Class IndexSchema
Public IndexName As String
Public IsUnique As Boolean
Public Columns As List(Of IndexColumn)
End Class
Public Class IndexColumn
Public ColumnName As String
Public IsAscending As Boolean
End Class
End NameSpace

View File

@@ -0,0 +1,7 @@
Namespace Database.Base
Public Class InsertParams
Public Property TableName() As String
Public Property InsertKeyValue As Dictionary(Of String, String)
End Class
End Namespace

View File

@@ -0,0 +1,71 @@
Imports System.Text
Namespace Database.Base
Public Class SearchCondition
Enum ConditionType
LessThan
GreaterThen
EqualTo
LessThanOrEqualTo
GreaterThenOrEqualTo
End Enum
Enum LogicType
[And]
[Or]
[Not]
End Enum
''' <summary>
''' 判断列名
''' </summary>
''' <returns></returns>
Public Property ColName() As String
''' <summary>
''' 判断条件
''' </summary>
''' <returns></returns>
Public Property Condition() As ConditionType = ConditionType.EqualTo
''' <summary>
''' 判断值
''' </summary>
''' <returns></returns>
Public Property ColValue() As String
''' <summary>
''' 当前条件与上一个条件的逻辑关系
''' </summary>
''' <returns></returns>
Public Property LogicPrevious() As LogicType = LogicType.And
''' <summary>
''' 将当前条件转换为字符串,不支持将条件逻辑关系同时转换
''' </summary>
''' <returns></returns>
Public Overrides Function ToString() As String
Dim stringBuilder As New StringBuilder
stringBuilder.Append(" ")
stringBuilder.Append(ColName)
Select Case Condition
Case ConditionType.EqualTo
stringBuilder.Append("=")
Case ConditionType.LessThan
stringBuilder.Append("<")
Case ConditionType.LessThanOrEqualTo
stringBuilder.Append("<=")
Case ConditionType.GreaterThen
stringBuilder.Append(">")
Case ConditionType.GreaterThenOrEqualTo
stringBuilder.Append(">=")
End Select
stringBuilder.Append($"'{ColValue}'")
Return stringBuilder.ToString()
End Function
End Class
End Namespace

View File

@@ -0,0 +1,46 @@
Namespace Database.Base
Public Class SearchParams
Enum OrderTypeEnum
None
Desc
Asc
End Enum
''' <summary>
''' 查询条件的表名
''' </summary>
''' <returns></returns>
Public Property TableName() As String
''' <summary>
''' 当IsSearchAllCols = False时,查询返回列名集合
''' </summary>
''' <returns></returns>
Public Property SearchColNames() As String()
''' <summary>
''' 查询的条件
''' </summary>
''' <returns></returns>
Public Property SearchCondition() As List(Of SearchCondition)
''' <summary>
''' 排序方式
''' </summary>
''' <returns></returns>
Public Property OrderType As OrderTypeEnum = OrderTypeEnum.None
''' <summary>
''' 但需要排序时排序列名
''' </summary>
''' <returns></returns>
Public Property OrderColName() As String
''' <summary>
''' 从返回结果提取指定行的内容
''' </summary>
''' <returns></returns>
Public Property Limit() As Integer = 0
End Class
End Namespace

View File

@@ -0,0 +1,14 @@
Imports System.Collections.Generic
Namespace Database.Base
Public Class TableSchema
Public TableName As String
Public TableSchemaName As String
Public Columns As List(Of ColumnSchema)
Public PrimaryKey As List(Of String)
Public ForeignKeys As List(Of ForeignKeySchema)
Public Indexes As List(Of IndexSchema)
End Class
End NameSpace

View File

@@ -0,0 +1,71 @@
Imports System.Collections.Generic
Imports System.Text
Namespace Database.Base
Public Module TriggerBuilder
Public Function GetForeignKeyTriggers(ByVal dt As TableSchema) As IList(Of TriggerSchema)
Dim result As IList(Of TriggerSchema) = New List(Of TriggerSchema)()
For Each fks As ForeignKeySchema In dt.ForeignKeys
result.Add(GenerateInsertTrigger(fks))
result.Add(GenerateUpdateTrigger(fks))
result.Add(GenerateDeleteTrigger(fks))
Next
Return result
End Function
Private Function MakeTriggerName(ByVal fks As ForeignKeySchema, ByVal prefix As String) As String
Return prefix & "_" & fks.TableName & "_" & fks.ColumnName & "_" & fks.ForeignTableName & "_" & fks.ForeignColumnName
End Function
Public Function GenerateInsertTrigger(ByVal fks As ForeignKeySchema) As TriggerSchema
Dim trigger As TriggerSchema = New TriggerSchema()
trigger.Name = MakeTriggerName(fks, "fki")
trigger.Type = TriggerType.Before
trigger.Event = TriggerEvent.Insert
trigger.Table = fks.TableName
Dim nullString As String = ""
If fks.IsNullable Then
nullString = " NEW." & fks.ColumnName & " IS NOT NULL AND"
End If
trigger.Body = "SELECT RAISE(ROLLBACK, 'insert on table " & fks.TableName & " violates foreign key constraint " & trigger.Name & "')" & " WHERE" & nullString & " (SELECT " & fks.ForeignColumnName & " FROM " & fks.ForeignTableName & " WHERE " & fks.ForeignColumnName & " = NEW." & fks.ColumnName & ") IS NULL; "
Return trigger
End Function
Public Function GenerateUpdateTrigger(ByVal fks As ForeignKeySchema) As TriggerSchema
Dim trigger As TriggerSchema = New TriggerSchema()
trigger.Name = MakeTriggerName(fks, "fku")
trigger.Type = TriggerType.Before
trigger.Event = TriggerEvent.Update
trigger.Table = fks.TableName
Dim triggerName As String = trigger.Name
Dim nullString As String = ""
If fks.IsNullable Then
nullString = " NEW." & fks.ColumnName & " IS NOT NULL AND"
End If
trigger.Body = "SELECT RAISE(ROLLBACK, 'update on table " & fks.TableName & " violates foreign key constraint " & triggerName & "')" & " WHERE" & nullString & " (SELECT " & fks.ForeignColumnName & " FROM " & fks.ForeignTableName & " WHERE " & fks.ForeignColumnName & " = NEW." & fks.ColumnName & ") IS NULL; "
Return trigger
End Function
Public Function GenerateDeleteTrigger(ByVal fks As ForeignKeySchema) As TriggerSchema
Dim trigger As TriggerSchema = New TriggerSchema()
trigger.Name = MakeTriggerName(fks, "fkd")
trigger.Type = TriggerType.Before
trigger.Event = TriggerEvent.Delete
trigger.Table = fks.ForeignTableName
Dim triggerName as String = trigger.Name
If Not fks.CascadeOnDelete Then
trigger.Body = "SELECT RAISE(ROLLBACK, 'delete on table " & fks.ForeignTableName & " violates foreign key constraint " & triggerName & "')" & " WHERE (SELECT " & fks.ColumnName & " FROM " & fks.TableName & " WHERE " & fks.ColumnName & " = OLD." & fks.ForeignColumnName & ") IS NOT NULL; "
Else
trigger.Body = "DELETE FROM [" & fks.TableName & "] WHERE " & fks.ColumnName & " = OLD." & fks.ForeignColumnName & "; "
End If
Return trigger
End Function
End Module
End NameSpace

View File

@@ -0,0 +1,20 @@
Namespace Database.Base
Public Enum TriggerEvent
Delete
Update
Insert
End Enum
Public Enum TriggerType
After
Before
End Enum
Public Class TriggerSchema
Public Name As String
Public [Event] As TriggerEvent
Public Type As TriggerType
Public Body As String
Public Table As String
End Class
End Namespace

View File

@@ -0,0 +1,17 @@

Namespace Database.Base
''' <summary>
''' Describes a single view schema
''' </summary>
Public Class ViewSchema
''' <summary>
''' Contains the view name
''' </summary>
Public ViewName As String
''' <summary>
''' Contains the view SQL statement
''' </summary>
Public ViewSql As String
End Class
End NameSpace

747
Database/DbCmdHelper.vb Normal file
View File

@@ -0,0 +1,747 @@
Imports System.Text
''' <summary>
''' 数据库语句助手
''' 时间2020-12-21
''' 作者ML
''' 版本1.0
'''
''' 注意:添加一条数据库帮助语句时,需要考虑Mysql/Sqlite/Mssql等数据库是否支持命令,不支持则需要在对应帮助类中重写该帮助语句
''' 注意Sqlite数据库与大多数据库不相同,DB开头数据库语句大多不适用
'''
''' </summary>
Public MustInherit Class DbCmdHelper
Protected FiledSuffix As Char
Protected FiledPrefix As Char
Public Shared Function CreateCmdHelper(type As DbExecutor.DbTypeEnum) As DbCmdHelper
Select Case type
Case DbExecutor.DbTypeEnum.Mysql
Return New MysqlCmdHelper()
Case DbExecutor.DbTypeEnum.Mssql
Return New MssqlCmdHelper()
Case DbExecutor.DbTypeEnum.Sqlite
Return New SqliteCmdHelper()
Case Else
Throw New Exception($"CreateCmdHelper :Unknown Type {type}")
End Select
End Function
#Region "访问单数据库连接"
''' <summary>
''' 查询指定数据表符合条件的所有数据
''' </summary>
''' <param name="tableName">指定表名</param>
''' <param name="condition">查询条件,</param>
''' <returns></returns>
Public Overridable Function SearchAll(tableName As String, Optional condition As String = "") As String
If String.IsNullOrWhiteSpace(condition) Then
Return $"Select * FROM {FiledSuffix}{tableName}{FiledPrefix};"
Else
Return $"Select * FROM {FiledSuffix}{tableName}{FiledPrefix} WHERE {condition};"
End If
End Function
''' <summary>
''' 查询表符合条件的所有指定列的数据
''' </summary>
''' <param name="columnName">列名集合,需要返回多列时用','符号分隔列名</param>
''' <param name="tableName">表名</param>
''' <param name="condition">条件</param>
''' <returns></returns>
Public Overridable Function Search(columnName As String, tableName As String, Optional condition As String = "") As String
If String.IsNullOrWhiteSpace(condition) Then
Return $"Select {columnName} FROM {FiledSuffix}{tableName}{FiledPrefix};"
Else
Return $"Select {columnName} FROM {FiledSuffix}{tableName}{FiledPrefix} WHERE {condition};"
End If
End Function
''' <summary>
''' 查询表符合条件的所有指定列的数据
''' </summary>
''' <param name="columnName">表名</param>
''' <param name="tableName">条件</param>
''' <returns></returns>
Public Overridable Function Search(columnName As List(Of String), tableName As String, Optional condition As String = "") As String
Dim colNameString As New StringBuilder
For i As Integer = 0 To columnName.Count - 1
If i = 0 Then
colNameString.Append($"{FiledSuffix}{columnName(i)}{FiledPrefix}")
Else
colNameString.Append($",{FiledSuffix}{columnName(i)}{FiledPrefix}")
End If
Next
If String.IsNullOrWhiteSpace(condition) Then
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix};"
Else
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix} Where {condition};"
End If
End Function
Public Overridable Function SearchOrder(columnName As List(Of String), tableName As String, Optional orderString As String = "") As String
Dim colNameString As New StringBuilder
For i As Integer = 0 To columnName.Count - 1
If i = 0 Then
colNameString.Append($"{FiledSuffix}{columnName(i)}{FiledPrefix}")
Else
colNameString.Append($",{FiledSuffix}{columnName(i)}{FiledPrefix}")
End If
Next
If String.IsNullOrWhiteSpace(orderString) Then
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix};"
Else
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix} {orderString};"
End If
End Function
''' <summary>
''' 查询指定表包含的内容行数
''' </summary>
''' <param name="tableName">数据表名</param>
''' <param name="condition">查询条件</param>
''' <returns></returns>
Public Overridable Function SearchCount(tableName As String, Optional condition As String = "") As String
Return Search("count(*)", tableName, condition)
End Function
''' <summary>
''' 查询指定数据表的信息
''' </summary>
''' <param name="tableName">表名</param>
''' <returns></returns>
Public Overridable Function SearchTableInfo(tableName As String) As String
Return $"Select * from information_schema.tables where table_name = '{tableName}';"
End Function
''' <summary>
''' 查询指定数据表是否存在的信息,返回查询当前表在数据库中存在的数量
''' </summary>
''' <param name="tableName">表名</param>
''' <returns></returns>
Public Overridable Function SearchTableExists(tableName As String) As String
Return $"Select count(*) from information_schema.tables where table_name = '{tableName}';"
End Function
''' <summary>
''' 数据表插入一行数据
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="colNames">列名字符串</param>
''' <param name="values">列值字符串</param>
''' <returns></returns>
Public Overridable Function Insert(tableName As String, colNames As String, values As String) As String
Return $"Insert into {FiledSuffix}{tableName}{FiledPrefix} ({colNames}) Values ( {values} );"
End Function
''' <summary>
''' 数据表插入一行数据
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="dicNameValues">列名与列值键值对</param>
''' <returns></returns>
Public Overridable Function Insert(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
Dim colNames As New StringBuilder
Dim values As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
If colNames.Length = 0 Then
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($"'{keyValuePair.Value}'")
Else
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($",'{keyValuePair.Value}'")
End If
Next
Return Insert(tableName, colNames.ToString(), values.ToString())
End Function
Public Overridable Function Insert2(tableName As String, dicNameValues As Dictionary(Of String, Object )) As String
Dim colNames As New StringBuilder
Dim values As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, Object) In dicNameValues
If colNames.Length = 0 Then
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($"'{keyValuePair.Value}'")
Else
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($",'{keyValuePair.Value}'")
End If
Next
Return Insert(tableName, colNames.ToString(), values.ToString())
End Function
''' <summary>
''' 数据表插入一行,通过命令参数方式执行时使用
''' </summary>
''' <param name="tableName"></param>
''' <param name="dicNameValues"></param>
''' <returns></returns>
Public Overridable Function InsertParam(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
Dim colNames As New StringBuilder
Dim values As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
If colNames.Length = 0 Then
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($"{keyValuePair.Value}")
Else
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($",{keyValuePair.Value}")
End If
Next
Return Insert(tableName, colNames.ToString(), values.ToString())
End Function
''' <summary>
''' 数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="colNames">字段列表</param>
''' <returns></returns>
Public Overridable Function InsertParam(tableName As String, colNames As List(Of String)) As String
Dim colNameString As New StringBuilder
Dim values As New StringBuilder
For Each colName As String In colNames
If colNameString.Length = 0 Then
colNameString.Append($"{FiledSuffix}{colName}{FiledPrefix}")
values.Append($"@{colName}")
Else
colNameString.Append($",{FiledSuffix}{colName}{FiledPrefix}")
values.Append($",@{colName}")
End If
Next
Return Insert(tableName, colNameString.ToString(), values.ToString())
End Function
''' <summary>
''' 更新指定表数据
''' </summary>
''' <param name="tableName">指定表名</param>
''' <param name="destStr">更新字符串</param>
''' <param name="condition"></param>
''' <returns></returns>
Public Overridable Function Update(tableName As String, destStr As String, condition As String) As String
Return $"Update {FiledSuffix}{tableName}{FiledPrefix} Set {destStr} Where {condition};"
End Function
''' <summary>
''' 更新指定表数据
''' </summary>
''' <param name="tableName">指定表名</param>
''' <param name="dicNameValues">更新列名与列值键值对</param>
''' <param name="condition">更新列索引条件</param>
''' <returns></returns>
Public Overridable Function Update(tableName As String, dicNameValues As Dictionary(Of String, String), condition As String) As String
Dim destStr As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
If destStr.Length = 0 Then
destStr.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix} = '{keyValuePair.Value}'")
Else
destStr.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix} = '{keyValuePair.Value}'")
End If
Next
Return Update(tableName, destStr.ToString(), condition)
End Function
''' <summary>
''' 更新指定数据库中指定表数据,参数名由@{ColName}
''' </summary>
''' <param name="tableName">指定表名</param>
''' <param name="colNames">更新列名的集合</param>
''' <param name="condition">更新列索引条件</param>
''' <returns></returns>
Public Overridable Function UpdateParam(tableName As String, colNames As List(Of String), condition As String) As String
Dim destStr As New StringBuilder
For Each colName As String In colNames
If destStr.Length = 0 Then
destStr.Append($"{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
Else
destStr.Append($",{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
End If
Next
Return Update(tableName, destStr.ToString(), condition)
End Function
''' <summary>
''' 指定数据表增加一列数据
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="colName">列名</param>
''' <param name="colType">列类型</param>
''' <param name="isNull">是否允许为空</param>
''' <returns></returns>
Public Overridable Function AddCol(tableName As String, colName As String, colType As String, Optional isNull As Boolean = True) As String
Return $"Alter Table {FiledSuffix}{tableName}{FiledPrefix} Add {FiledSuffix}{colName}{FiledPrefix} {colType} {IIf(isNull, "Default Null", "Not Null")};"
End Function
''' <summary>
''' 数据表删除一列数据
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="colName">需要删除的列名,仅一列</param>
''' <returns></returns>
Public Overridable Function DropCol(tableName As String, colName As String) As String
Return $"Alter Table {FiledSuffix}{tableName}{FiledPrefix} Drop Column {FiledSuffix}{colName}{FiledPrefix};"
End Function
''' <summary>
''' 删除指定表多行数据
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="condition">条件</param>
''' <returns></returns>
Public Overridable Function DeleteRows(tableName As String, condition As String) As String
Return $"Delete From {FiledSuffix}{tableName}{FiledPrefix} Where {condition};"
End Function
''' <summary>
''' 创建数据表
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="createStr">创建表的列信息字符串</param>
''' <returns></returns>
Public Overridable Function CreateTable(tableName As String, createStr As String) As String
Return $"Create Table {FiledSuffix}{tableName}{FiledPrefix} ( {createStr} );"
End Function
''' <summary>
''' 创建数据表,如果存在则不创建
''' </summary>
''' <param name="tableName">表名</param>
''' <param name="createStr">创建表的列信息字符串</param>
''' <returns></returns>
Public Overridable Function CreateTableWhenNotExists(tableName As String, createStr As String) As String
Return $"Create Table if not exists {FiledSuffix}{tableName}{FiledPrefix} ( {createStr} );"
End Function
''' <summary>
''' 清空数据表,表依旧存在
''' </summary>
''' <param name="tableName">数据表名</param>
''' <returns></returns>
Public Overridable Function DeleteTable(tableName As String) As String
Return $"Delete From {FiledSuffix}{tableName}{FiledPrefix};"
End Function
''' <summary>
''' 删除数据表
''' </summary>
''' <param name="tableName">数据表名</param>
''' <returns></returns>
Public Overridable Function DropTable(tableName As String) As String
Return $"Drop Table {FiledSuffix}{tableName}{FiledPrefix};"
End Function
''' <summary>
''' 删除数据表
''' </summary>
''' <param name="tableName">数据表名</param>
''' <returns></returns>
Public Overridable Function DropTableWhenExists(tableName As String) As String
Return $"Drop Table If Exists {FiledSuffix}{tableName}{FiledPrefix};"
End Function
#End Region
#Region "访问多数据库连接"
''' <summary>
''' 查询指定数据库中指定数据表符合条件的所有指定列的数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="ColsName">列名集合,需要返回多列时用','符号分隔列名</param>
''' <param name="tableName">表名</param>
''' <param name="condition">条件</param>
''' <returns></returns>
Public Overridable Function DbSearch(dbName As String, colsName As String, tableName As String, Optional condition As String = "") As String
Dim cmdText As New StringBuilder
cmdText.Append($"Select {colsName} From ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
If String.IsNullOrWhiteSpace(condition) = False Then
cmdText.Append($" WHERE {condition}")
End If
cmdText.Append($";")
Return cmdText.ToString()
End Function
''' <summary>
''' 查询指定数据库中指定数据表符合条件的所有指定列的去重数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="ColsName">列名集合,需要返回多列时用','符号分隔列名</param>
''' <param name="tableName">表名</param>
''' <param name="condition">条件</param>
''' <returns></returns>
Public Overridable Function DbDistinctSearch(dbName As String, colsName As String, tableName As String, Optional condition As String = "") As String
Dim cmdText As New StringBuilder
cmdText.Append($"Select Distinct {colsName} From ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
If String.IsNullOrWhiteSpace(condition) = False Then
cmdText.Append($" WHERE {condition}")
End If
cmdText.Append($";")
Return cmdText.ToString()
End Function
''' <summary>
''' 查询指定数据库中指定数据表符合条件的所有指定列的数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="columnName">表名</param>
''' <param name="tableName">条件</param>
''' <returns></returns>
Public Overridable Function DbSearch(dbName As String, columnName As List(Of String), tableName As String, Optional condition As String = "") As String
Dim colNameString As New StringBuilder
For i As Integer = 0 To columnName.Count - 1
If i = 0 Then
colNameString.Append($"{FiledSuffix}{columnName(i)}{FiledPrefix}")
Else
colNameString.Append($",{FiledSuffix}{columnName(i)}{FiledPrefix}")
End If
Next
Return DbSearch(dbName, colNameString.ToString(), tableName, condition)
End Function
''' <summary>
''' 查询指定表包含的内容行数
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">数据表名</param>
''' <param name="condition">查询条件</param>
''' <returns></returns>
Public Overridable Function DbSearchCount(dbName As String, tableName As String, Optional condition As String = "") As String
Return DbSearch(dbName, "count(*)", tableName, condition)
End Function
''' <summary>
''' 查询指定数据库中指定数据表符合条件的所有数据
'''
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">数据表名</param>
''' <param name="condition">查询条件(可选)</param>
''' <returns></returns>
Public Overridable Function DbSearchAll(dbName As String, tableName As String, Optional condition As String = "") As String
Return DbSearch(dbName, "*", tableName, condition)
End Function
''' <summary>
''' 查询指定数据库中指定数据表的信息
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <returns></returns>
Public Overridable Function DbSearchTableInfo(dbName As String, tableName As String) As String
Return DbSearch("", "*", "information_schema.tables", "table_schema = '{dbName}' and table_name = '{tableName}'")
End Function
''' <summary>
''' 查询指定数据表是否存在的信息,返回查询当前表在指定数据库中存在的数量
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <returns></returns>
Public Overridable Function DbSearchTableExists(dbName As String, tableName As String) As String
Return DbSearch("", "count(*)", "information_schema.tables", "table_schema = '{dbName}' and table_name = '{tableName}'")
End Function
''' <summary>
''' 指定数据库中数据表插入一行数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <param name="colNames">列名字符串</param>
''' <param name="values">列值字符串</param>
''' <returns></returns>
Public Overridable Function DbInsert(dbName As String, tableName As String, colNames As String, values As String) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Insert into ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($" ({colNames}) Values ( {values} );")
Return cmdText.ToString()
End Function
''' <summary>
''' 指定数据库中数据表插入一行数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <param name="dicNameValues">列名与列值键值对</param>
''' <returns></returns>
Public Overridable Function DbInsert(dbName As String, tableName As String, dicNameValues As Dictionary(Of String, String)) As String
Dim colNames As New StringBuilder
Dim values As New StringBuilder
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
If colNames.Length = 0 Then
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($"'{keyValuePair.Value}'")
Else
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
values.Append($",'{keyValuePair.Value}'")
End If
Next
Return DbInsert(dbName, tableName, colNames.ToString(), values.ToString())
End Function
''' <summary>
''' 指定数据库中数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName"></param>
''' <param name="colNames">需要插入列名的集合</param>
''' <returns></returns>
Public Overridable Function DbInsertParam(dbName As String, tableName As String, colNames As List(Of String)) As String
Dim colNameBuilder As New StringBuilder
Dim valueBuilder As New StringBuilder
For Each colName As String In colNames
If colNameBuilder.Length = 0 Then
colNameBuilder.Append($"{FiledSuffix}{colName}{FiledPrefix}")
valueBuilder.Append($"@{colName}")
Else
colNameBuilder.Append($",{FiledSuffix}{colName}{FiledPrefix}")
valueBuilder.Append($",@{colName}")
End If
Next
'insert into dbName.tablename (1,2,3) value (@1,@2,@3)
Return DbInsert(dbName, tableName, colNameBuilder.ToString(), valueBuilder.ToString())
End Function
''' <summary>
''' 更新指定数据库中指定表数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">指定表名</param>
''' <param name="destStr">更新字符串</param>
''' <param name="condition"></param>
''' <returns></returns>
Public Overridable Function DbUpdate(dbName As String, tableName As String, destStr As String, condition As String) As String
Dim cmdText As New StringBuilder
Dim tmpStrCmdText As String = ""
cmdText.Append($"Update ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($" Set {destStr} Where {condition};")
tmpStrCmdText = cmdText.ToString()
Console.WriteLine("SQL_CMD = " & tmpStrCmdText)
Return tmpStrCmdText
End Function
''' <summary>
''' 更新指定数据库中指定表数据,参数名由@{ColName}
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">指定表名</param>
''' <param name="colNames">更新列名的集合</param>
''' <param name="condition">更新列索引条件</param>
''' <returns></returns>
Public Overridable Function DbUpdateParam(dbName As String, tableName As String, colNames As List(Of String), condition As String) As String
Dim destStr As New StringBuilder
For Each colName As String In colNames
If destStr.Length = 0 Then
destStr.Append($"{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
Else
destStr.Append($",{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
End If
Next
Return DbUpdate(dbName, tableName, destStr.ToString(), condition)
End Function
''' <summary>
''' 更新指定数据库中指定表数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">指定表名</param>
''' <param name="filedDictionary">更新列名与列值键值对</param>
''' <param name="condition">更新列索引条件</param>
''' <returns></returns>
Public Overridable Function DbUpdate(dbName As String, tableName As String, filedDictionary As Dictionary(Of String, String), condition As String) As String
Dim destStr As New StringBuilder
For Each filed As KeyValuePair(Of String, String) In filedDictionary
If destStr.Length = 0 Then
destStr.Append($"{FiledSuffix}{filed.Key}{FiledPrefix} = '{filed.Value}'")
Else
destStr.Append($",{FiledSuffix}{filed.Key}{FiledPrefix} = '{filed.Value}'")
End If
Next
Return DbUpdate(dbName, tableName, destStr.ToString(), condition)
End Function
''' <summary>
''' 指定数据库中指定数据表增加一列数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <param name="colName">列名</param>
''' <param name="colType">列类型</param>
''' <param name="isNull">是否允许为空</param>
''' <returns></returns>
Public Overridable Function DbAddCol(dbName As String, tableName As String, colName As String, colType As String, Optional isNull As Boolean = True) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Alter Table ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($" Add {FiledSuffix}{colName}{FiledPrefix} {colType} {IIf(isNull, "Default Null", "Not Null")};")
Return cmdText.ToString()
End Function
''' <summary>
''' 指定数据库中数据表删除一列数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <param name="colName">需要删除的列名,仅一列</param>
''' <returns></returns>
Public Overridable Function DbDropCol(dbName As String, tableName As String, colName As String) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Alter Table ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($" Drop Column {FiledSuffix}{colName}{FiledPrefix};")
Return cmdText.ToString()
End Function
''' <summary>
''' 指定数据库中指定表删除多行数据
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <param name="condition">条件</param>
''' <returns></returns>
Public Overridable Function DbDeleteRows(dbName As String, tableName As String, condition As String) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Delete From ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($" Where {condition};")
Return cmdText.ToString()
End Function
''' <summary>
''' 指定数据库中创建数据表
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <param name="createStr">创建表的列信息字符串</param>
''' <returns></returns>
Public Overridable Function DbCreateTable(dbName As String, tableName As String, createStr As String) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Create Table ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($" ( {createStr} );")
Return cmdText.ToString()
End Function
''' <summary>
''' 指定数据库中创建数据表,如果存在则不创建
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">表名</param>
''' <param name="createStr">创建表的列信息字符串</param>
''' <returns></returns>
Public Overridable Function DbCreateTableWhenNotExists(dbName As String, tableName As String, createStr As String) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Create Table if not exists ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($" ( {createStr} );")
Return cmdText.ToString()
End Function
''' <summary>
''' 清空指定数据库中数据表,表依旧存在
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">数据表名</param>
''' <returns></returns>
Public Overridable Function DbDeleteTable(dbName As String, tableName As String) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Delete From ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($";")
Return cmdText.ToString()
End Function
''' <summary>
''' 删除指定数据库中数据表
''' </summary>
''' <param name="dbName">数据库名</param>
''' <param name="tableName">数据表名</param>
''' <returns></returns>
Public Overridable Function DbDropTable(dbName As String, tableName As String) As String
Dim cmdText As New StringBuilder
cmdText.Append($"Drop Table ")
If String.IsNullOrEmpty(dbName) = False Then
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
End If
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
cmdText.Append($";")
Return cmdText.ToString()
End Function
#End Region
End Class

377
Database/DbExecutor.vb Normal file
View File

@@ -0,0 +1,377 @@
Imports System.Data.Common
Imports System.Data.SqlClient
Imports System.Data.SQLite
Imports MySql.Data.MySqlClient
''' <summary>
''' 数据库通用命令执行器
''' 时间2020-12-21
''' 作者ML
''' 版本1.0
''' </summary>
Public Class DbExecutor
Implements IDisposable
''' <summary>
''' 数据库类型,目前支持Mysql与Sqlite
''' </summary>
Enum DbTypeEnum
Mysql
Sqlite
Mssql
End Enum
Private ReadOnly _connectionString As String '数据库连接语句
Private ReadOnly _dbType As DbTypeEnum '数据库类型
Private _connection As DbConnection '数据库连接句柄
Private _command As DbCommand '数据库命令句柄
Private _dataAdapter As DbDataAdapter '数据库查询填充器句柄
Private _transaction As DbTransaction '数据库事务句柄
Private _commandHelper As DbCmdHelper '数据库语句填充助手
Sub New(type As DbTypeEnum, connectionString As String)
_dbType = type
_connectionString = connectionString
InitByDbType(_dbType)
End Sub
Private Sub InitByDbType(type As DbTypeEnum)
Select Case type
Case DbTypeEnum.Mysql
_connection = New MySqlConnection()
_command = _connection.CreateCommand()
_dataAdapter = New MySqlDataAdapter() With {.MissingSchemaAction = MissingSchemaAction.AddWithKey}
_commandHelper = New MysqlCmdHelper()
Case DbTypeEnum.Sqlite
_connection = New SQLiteConnection()
_command = _connection.CreateCommand()
_dataAdapter = New SQLiteDataAdapter() With {.MissingSchemaAction = MissingSchemaAction.AddWithKey}
_commandHelper = New SqliteCmdHelper()
Case DbTypeEnum.Mssql
_connection = New SqlConnection()
_command = _connection.CreateCommand()
_dataAdapter = New SqlDataAdapter() With {.MissingSchemaAction = MissingSchemaAction.AddWithKey}
_commandHelper = New MssqlCmdHelper()
End Select
End Sub
Public ReadOnly Property DatabaseType() As DbTypeEnum
Get
Return _dbType
End Get
'Set(value As DbTypeEnum)
' _dbType = value
' '执行上一个数据库的关闭操作
' InitByDbType(_dbType)
'End Set
End Property
Public ReadOnly Property Connection() As DbConnection
Get
Return _connection
End Get
End Property
Public ReadOnly Property Command() As DbCommand
Get
Return _command
End Get
End Property
Public ReadOnly Property CmdHelper() As DbCmdHelper
Get
Return _commandHelper
End Get
End Property
''' <summary>
''' 打开数据库连接
''' </summary>
''' <returns></returns>
Public Function Open() As Boolean
If _connection Is Nothing Then Return False
If String.IsNullOrWhiteSpace(_connectionString) Then Return False
Try
_connection.ConnectionString = _connectionString
_connection.Open()
Catch ex As Exception
Throw
End Try
Return True
End Function
''' <summary>
''' 关闭数据库连接
''' </summary>
Public Sub Close()
If _connection Is Nothing Then Return
If _connection.State = ConnectionState.Closed Then Return
_connection.Close()
End Sub
''' <summary>
''' 创建当前连接的命令执行句柄
''' </summary>
''' <returns></returns>
Public Function CreateCommand() As DbCommand
Return _connection.CreateCommand()
End Function
''' <summary>
''' 运行非查询语句,返回执行该语句受到影响的行数
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <returns></returns>
Public Function ExecuteNonQuery(commandText As String) As Integer
Dim result As Integer
Try
_command.CommandText = commandText
result = _command.ExecuteNonQuery()
Catch ex As Exception
Throw
End Try
Return result
End Function
''' <summary>
''' 使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <param name="commandParams">执行的数据库命令参数</param>
''' <returns></returns>
Public Function ExecuteNonQuery(commandText As String, commandParams As DbParameterCollection) As Integer
Dim result As Integer
Try
_command.CommandText = commandText
_command.Parameters.Clear()
For Each param As DbParameter In commandParams
_command.Parameters.Add(param)
Next
result = _command.ExecuteNonQuery()
Catch ex As Exception
Throw
End Try
Return result
End Function
''' <summary>
''' 执行数据库语句,返回数据库读取流的句柄
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <returns></returns>
Public Function ExecuteReader(commandText As String) As DbDataReader
Dim result As DbDataReader
Try
_command.CommandText = commandText
result = _command.ExecuteReader()
Catch ex As Exception
Throw
End Try
Return result
End Function
''' <summary>
''' 使用命令参数模式执行数据库语句,返回数据库读取流的句柄
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <param name="commandParams">执行的数据库命令参数</param>
''' <returns></returns>
Public Function ExecuteReader(commandText As String, commandParams As DbParameterCollection) As DbDataReader
Dim result As DbDataReader
Try
_command.CommandText = commandText
_command.Parameters.Clear()
For Each param As DbParameter In commandParams
_command.Parameters.Add(param)
Next
result = _command.ExecuteReader()
Catch ex As Exception
Throw
End Try
Return result
End Function
''' <summary>
''' 执行数据库语句,返回查询结果的第一行第一列的内容
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <returns></returns>
Public Function ExecuteScalar(commandText As String) As Object
Dim result As Object
Try
_command.CommandText = commandText
result = _command.ExecuteScalar()
Catch ex As Exception
Throw
End Try
Return result
End Function
''' <summary>
''' 使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <param name="commandParams">执行的数据库命令参数</param>
''' <returns></returns>
Public Function ExecuteScalar(commandText As String, commandParams As DbParameterCollection) As Object
Dim result As Object
Try
_command.CommandText = commandText
_command.Parameters.Clear()
For Each param As DbParameter In commandParams
_command.Parameters.Add(param)
Next
result = _command.ExecuteScalar()
Catch ex As Exception
Throw
End Try
Return result
End Function
''' <summary>
''' 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <returns></returns>
Public Function ExecuteDataTable(commandText As String, Optional withKey As Boolean = True) As DataTable
Dim dataTable As New DataTable
Try
_command.CommandText = commandText
If withKey Then
_dataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Else
_dataAdapter.MissingSchemaAction = MissingSchemaAction.Add
End If
_dataAdapter.SelectCommand = _command
_dataAdapter.Fill(dataTable)
Catch ex As Exception
Return Nothing
End Try
Return dataTable
End Function
''' <summary>
''' 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
''' </summary>
''' <param name="commandText">执行的数据库命令文本</param>
''' <param name="commandParams">执行的数据库命令参数</param>
''' <returns></returns>
Public Function ExecuteDataTable(commandText As String, commandParams As DbParameterCollection) As DataTable
Dim dataTable As New DataTable
Try
_command.CommandText = commandText
_command.Parameters.Clear()
For Each param As DbParameter In commandParams
_command.Parameters.Add(param)
Next
_dataAdapter.SelectCommand = _command
_dataAdapter.Fill(dataTable)
Catch ex As Exception
Throw
End Try
Return dataTable
End Function
''' <summary>
''' 开启事务
''' </summary>
''' <returns></returns>
Public Function BeginTransaction() As DbTransaction
_transaction = _connection.BeginTransaction()
Return _transaction
End Function
''' <summary>
''' 提交事务
''' </summary>
Public Sub CommitTransaction()
Try
_transaction.Commit()
Catch ex As Exception
Throw
End Try
End Sub
''' <summary>
''' 回滚事务
''' </summary>
Public Sub RollbackTransaction()
Try
_transaction.Rollback()
Catch ex As Exception
Throw
End Try
End Sub
''' <summary>
''' 创建数据参数
''' </summary>
''' <param name="type">参数数据类型</param>
''' <param name="ParameterName">参数名称</param>
''' <param name="value">参数值</param>
''' <returns></returns>
Public Function CreateDbParameter(type As DbType, parameterName As String, value As Object) As DbParameter
Dim dbParam As DbParameter = _command.CreateParameter()
dbParam.DbType = type
dbParam.ParameterName = parameterName
dbParam.Value = value
Return dbParam
End Function
''' <summary>
''' 添加数据参数
''' </summary>
''' <param name="type"></param>
''' <param name="parameterName"></param>
''' <param name="value"></param>
''' <returns></returns>
Public Function AddDbParameter(type As DbType, parameterName As String, value As Object) As DbParameter
Dim dbParam As DbParameter = _command.CreateParameter()
dbParam.DbType = type
dbParam.ParameterName = parameterName
dbParam.Value = value
_command.Parameters.Add(dbParam)
Return dbParam
End Function
''' <summary>
''' 清空数据
''' </summary>
Public Sub ClearDbParameter()
_command.Parameters.Clear()
End Sub
''' <summary>
''' 回收资源
''' </summary>
Public Sub Dispose() Implements IDisposable.Dispose
If _connection IsNot Nothing Then
If _connection.State = ConnectionState.Open Then
_connection.Close()
End If
_connection.Dispose()
End If
If _command IsNot Nothing Then _command.Dispose()
If _dataAdapter IsNot Nothing Then _dataAdapter.Dispose()
GC.Collect() '对所有缓存垃圾进行回收
End Sub
End Class

View File

@@ -0,0 +1,10 @@
Namespace Database.Mssql
Public Class MssqlCmdHelper
Inherits DbCmdHelper
Sub New()
FiledSuffix = "["c
FiledPrefix = "]"c
End Sub
End Class
End Namespace

View File

@@ -0,0 +1,8 @@
Public Class MssqlCmdHelper
Inherits DbCmdHelper
Sub New()
FiledSuffix = "["c
FiledPrefix = "]"c
End Sub
End Class

222
Database/Mysql/DataParam.vb Normal file
View File

@@ -0,0 +1,222 @@
Imports System.Text
Namespace Database.Mysql
Public Class DataParam
Enum DataTypeEnum
'###############################数值类型#############################
''' <summary>
''' 1 byte,小整数值
''' </summary>
Tinyint
''' <summary>
''' 2 bytes,大整数值
''' </summary>
Smallint
''' <summary>
''' 3 bytes,大整数值
''' </summary>
Mediumint
''' <summary>
''' 4 bytes,大整数值
''' </summary>
Int
''' <summary>
''' 4 bytes,大整数值
''' </summary>
[Integer]
''' <summary>
''' 8 bytes,极大整数值
''' </summary>
Bigint
''' <summary>
''' 4 bytes,单精度浮点数值
''' </summary>
Float
''' <summary>
''' 8 bytes,双精度浮点数值
''' </summary>
[Double]
'####################日期类型###############################
''' <summary>
''' 对DECIMAL(M,D) 如果M>D为M+2否则为D+2.小数值
''' </summary>
[Decimal]
''' <summary>
''' 3 bytes,日期值,YYYY-MM-DD
''' </summary>
[Date]
''' <summary>
''' 3 bytes,时间值或持续时间,HH:MM:SS
''' </summary>
Time
''' <summary>
''' 1 bytes,年份值,YYYY
''' </summary>
Year
''' <summary>
''' 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
''' </summary>
Datetime
''' <summary>
''' 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
''' </summary>
Timestamp
'####################字符类型###############################
''' <summary>
''' 0-255 bytes,定长字符串
''' </summary>
[Char]
''' <summary>
''' 0-65535 bytes,变长字符串
''' </summary>
Varchar
''' <summary>
''' 0-255 bytes,不超过 255 个字符的二进制字符串
''' </summary>
Tinyblob
''' <summary>
''' 0-255 bytes,短文本字符串
''' </summary>
Tinytext
''' <summary>
''' 0-65 535 bytes,二进制形式的长文本数据
''' </summary>
Blob
''' <summary>
''' 0-65 535 bytes,长文本数据
''' </summary>
Text
''' <summary>
''' 0-16 777 215 bytes,二进制形式的中等长度文本数据
''' </summary>
Mediumblob
''' <summary>
''' 0-16 777 215 bytes,中等长度文本数据
''' </summary>
Mediumtext
''' <summary>
''' 0-4 294 967 295 bytes,二进制形式的极大文本数据
''' </summary>
Longblob
''' <summary>
''' 0-4 294 967 295 bytes,极大文本数据
''' </summary>
Longtext
End Enum
''' <summary>
''' 列名
''' </summary>
''' <returns></returns>
Public Property ColumnName() As String
''' <summary>
''' 当前值
''' </summary>
''' <returns></returns>
Public Property Value() As String
''' <summary>
''' 默认值
''' </summary>
''' <returns></returns>
Public Property DefaultValue() As String
''' <summary>
''' 数据类型
''' </summary>
''' <returns></returns>
Public Property DataType() As DataTypeEnum
''' <summary>
''' 数据类型长度
''' </summary>
''' <returns></returns>
Public Property DataTypeLength() As Integer
''' <summary>
''' 数据类型是否带符号
''' </summary>
''' <returns></returns>
Public Property IsUnsigned() As Boolean
''' <summary>
''' 是否允许为空
''' </summary>
''' <returns></returns>
Public Property IsNull() As Boolean = True
''' <summary>
''' 是否自动增长
''' </summary>
''' <returns></returns>
Public Property IsAutoIncrement() As Boolean
''' <summary>
''' 是否为主键
''' </summary>
''' <returns></returns>
Public Property IsPrimaryKey() As Boolean
Public Function ToAddColString() As String
Dim sb As New StringBuilder
sb.Append($"`{ColumnName}`")
Select Case DataType
Case DataTypeEnum.Varchar,DataTypeEnum.[Char]
sb.Append($" {DataType}({DataTypeLength}) ")
Case DataTypeEnum.Int
sb.Append($" {DataType}")
if IsUnsigned Then sb.Append($" Unsigned")
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
Case Else
sb.Append($" {DataType}")
End Select
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
If IsPrimaryKey Then
sb.Append($" PRIMARY KEY")
End If
Return sb.ToString()
End Function
End Class
End Namespace

View File

@@ -0,0 +1,13 @@
Imports System.Text
Namespace Database.Mysql
Public Class MysqlCmdHelper
Inherits DbCmdHelper
Sub New
FiledSuffix = "`"c
FiledPrefix = "`"c
End Sub
End Class
End Namespace

View File

@@ -0,0 +1,9 @@
Public Class MysqlCmdHelper
Inherits DbCmdHelper
Sub New()
FiledSuffix = "`"c
FiledPrefix = "`"c
End Sub
End Class

220
Database/MysqlDataParam.vb Normal file
View File

@@ -0,0 +1,220 @@
Imports System.Text
Public Class MysqlDataParam
Enum DataTypeEnum
'###############################数值类型#############################
''' <summary>
''' 1 byte,小整数值
''' </summary>
Tinyint
''' <summary>
''' 2 bytes,大整数值
''' </summary>
Smallint
''' <summary>
''' 3 bytes,大整数值
''' </summary>
Mediumint
''' <summary>
''' 4 bytes,大整数值
''' </summary>
Int
''' <summary>
''' 4 bytes,大整数值
''' </summary>
[Integer]
''' <summary>
''' 8 bytes,极大整数值
''' </summary>
Bigint
''' <summary>
''' 4 bytes,单精度浮点数值
''' </summary>
Float
''' <summary>
''' 8 bytes,双精度浮点数值
''' </summary>
[Double]
'####################日期类型###############################
''' <summary>
''' 对DECIMAL(M,D) 如果M>D为M+2否则为D+2.小数值
''' </summary>
[Decimal]
''' <summary>
''' 3 bytes,日期值,YYYY-MM-DD
''' </summary>
[Date]
''' <summary>
''' 3 bytes,时间值或持续时间,HH:MM:SS
''' </summary>
Time
''' <summary>
''' 1 bytes,年份值,YYYY
''' </summary>
Year
''' <summary>
''' 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
''' </summary>
Datetime
''' <summary>
''' 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
''' </summary>
Timestamp
'####################字符类型###############################
''' <summary>
''' 0-255 bytes,定长字符串
''' </summary>
[Char]
''' <summary>
''' 0-65535 bytes,变长字符串
''' </summary>
Varchar
''' <summary>
''' 0-255 bytes,不超过 255 个字符的二进制字符串
''' </summary>
Tinyblob
''' <summary>
''' 0-255 bytes,短文本字符串
''' </summary>
Tinytext
''' <summary>
''' 0-65 535 bytes,二进制形式的长文本数据
''' </summary>
Blob
''' <summary>
''' 0-65 535 bytes,长文本数据
''' </summary>
Text
''' <summary>
''' 0-16 777 215 bytes,二进制形式的中等长度文本数据
''' </summary>
Mediumblob
''' <summary>
''' 0-16 777 215 bytes,中等长度文本数据
''' </summary>
Mediumtext
''' <summary>
''' 0-4 294 967 295 bytes,二进制形式的极大文本数据
''' </summary>
Longblob
''' <summary>
''' 0-4 294 967 295 bytes,极大文本数据
''' </summary>
Longtext
End Enum
''' <summary>
''' 列名
''' </summary>
''' <returns></returns>
Public Property ColumnName() As String
''' <summary>
''' 当前值
''' </summary>
''' <returns></returns>
Public Property Value() As String
''' <summary>
''' 默认值
''' </summary>
''' <returns></returns>
Public Property DefaultValue() As String
''' <summary>
''' 数据类型
''' </summary>
''' <returns></returns>
Public Property DataType() As DataTypeEnum
''' <summary>
''' 数据类型长度
''' </summary>
''' <returns></returns>
Public Property DataTypeLength() As Integer
''' <summary>
''' 数据类型是否带符号
''' </summary>
''' <returns></returns>
Public Property IsUnsigned() As Boolean
''' <summary>
''' 是否允许为空
''' </summary>
''' <returns></returns>
Public Property IsNull() As Boolean = True
''' <summary>
''' 是否自动增长
''' </summary>
''' <returns></returns>
Public Property IsAutoIncrement() As Boolean
''' <summary>
''' 是否为主键
''' </summary>
''' <returns></returns>
Public Property IsPrimaryKey() As Boolean
Public Function ToAddColString() As String
Dim sb As New StringBuilder
sb.Append($"`{ColumnName}`")
Select Case DataType
Case DataTypeEnum.Varchar, DataTypeEnum.[Char]
sb.Append($" {DataType}({DataTypeLength}) ")
Case DataTypeEnum.Int
sb.Append($" {DataType}")
If IsUnsigned Then sb.Append($" Unsigned")
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
Case Else
sb.Append($" {DataType}")
End Select
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
If IsPrimaryKey Then
sb.Append($" PRIMARY KEY")
End If
Return sb.ToString()
End Function
End Class

View File

@@ -0,0 +1,106 @@
Imports System.Text
Namespace Database.Sqlite
Public Class DataParam
Enum DataTypeEnum
Varchar
Nchar
Blob
Bit
Datetime
[Decimal]
Real
UniqueIdentifier
Int
[Integer]
TinyInt
[Single]
Nvarchar
SmallInt
SmallUint
Uint
UnsignedInteger
End Enum
''' <summary>
''' 列名
''' </summary>
''' <returns></returns>
Public Property ColumnName() As String
''' <summary>
''' 当前值
''' </summary>
''' <returns></returns>
Public Property Value() As String
''' <summary>
''' 默认值
''' </summary>
''' <returns></returns>
Public Property DefaultValue() As String
''' <summary>
''' 数据类型
''' </summary>
''' <returns></returns>
Public Property DataType() As DataTypeEnum
''' <summary>
''' 数据类型长度
''' </summary>
''' <returns></returns>
Public Property DataTypeLength() As Integer
''' <summary>
''' 是否允许为空
''' </summary>
''' <returns></returns>
Public Property IsNull() As Boolean = True
''' <summary>
''' 是否自动增长
''' </summary>
''' <returns></returns>
Public Property IsAutoIncrement() As Boolean
''' <summary>
''' 是否为主键
''' </summary>
''' <returns></returns>
Public Property IsPrimaryKey() As Boolean
''' <summary>
''' 是否为唯一值
''' </summary>
''' <returns></returns>
Public Property IsUnique() As Boolean
Public Function ToAddColString() As String
Dim sb As New StringBuilder
sb.Append($"`{ColumnName}`")
Select Case DataType
Case DataTypeEnum.Varchar, DataTypeEnum.Nchar, DataTypeEnum.Nvarchar
sb.Append($" {DataType}({DataTypeLength}) ")
Case DataTypeEnum.Int,DataTypeEnum.Integer
sb.Append($" {DataType}")
Case Else
sb.Append($" {DataType}")
End Select
If IsAutoIncrement Then sb.Append($" AUTOINCREMENT")
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
If IsPrimaryKey Then
sb.Append($" PRIMARY KEY")
End If
Return sb.ToString()
End Function
End Class
End Namespace

View File

@@ -0,0 +1,20 @@
Namespace Database.Sqlite
Public Class SqliteCmdHelper
Inherits DbCmdHelper
Sub New()
FiledSuffix = "["c
FiledPrefix = "]"c
End Sub
''' <summary>
''' 查询指定数据表的信息
''' </summary>
''' <param name="tableName"></param>
''' <returns></returns>
Public Overrides Function SearchTableInfo(tableName As String) As String
Return $"select * from sqlite_master where tbl_name = '{tableName}';"
End Function
End Class
End Namespace

View File

@@ -0,0 +1,19 @@

Public Class SqliteCmdHelper
Inherits DbCmdHelper
Sub New()
FiledSuffix = "["c
FiledPrefix = "]"c
End Sub
''' <summary>
''' 查询指定数据表的信息
''' </summary>
''' <param name="tableName"></param>
''' <returns></returns>
Public Overrides Function SearchTableInfo(tableName As String) As String
Return $"select * from sqlite_master where tbl_name = '{tableName}';"
End Function
End Class

105
Database/SqliteDataParam.vb Normal file
View File

@@ -0,0 +1,105 @@
Imports System.Text
Public Class SqliteDataParam
Enum DataTypeEnum
Varchar
Nchar
Blob
Bit
Datetime
[Decimal]
Real
UniqueIdentifier
Int
[Integer]
TinyInt
[Single]
Nvarchar
SmallInt
SmallUint
Uint
UnsignedInteger
End Enum
''' <summary>
''' 列名
''' </summary>
''' <returns></returns>
Public Property ColumnName() As String
''' <summary>
''' 当前值
''' </summary>
''' <returns></returns>
Public Property Value() As String
''' <summary>
''' 默认值
''' </summary>
''' <returns></returns>
Public Property DefaultValue() As String
''' <summary>
''' 数据类型
''' </summary>
''' <returns></returns>
Public Property DataType() As DataTypeEnum
''' <summary>
''' 数据类型长度
''' </summary>
''' <returns></returns>
Public Property DataTypeLength() As Integer
''' <summary>
''' 是否允许为空
''' </summary>
''' <returns></returns>
Public Property IsNull() As Boolean = True
''' <summary>
''' 是否自动增长
''' </summary>
''' <returns></returns>
Public Property IsAutoIncrement() As Boolean
''' <summary>
''' 是否为主键
''' </summary>
''' <returns></returns>
Public Property IsPrimaryKey() As Boolean
''' <summary>
''' 是否为唯一值
''' </summary>
''' <returns></returns>
Public Property IsUnique() As Boolean
Public Function ToAddColString() As String
Dim sb As New StringBuilder
sb.Append($"`{ColumnName}`")
Select Case DataType
Case DataTypeEnum.Varchar, DataTypeEnum.Nchar, DataTypeEnum.Nvarchar
sb.Append($" {DataType}({DataTypeLength}) ")
Case DataTypeEnum.Int, DataTypeEnum.Integer
sb.Append($" {DataType}")
Case Else
sb.Append($" {DataType}")
End Select
If IsAutoIncrement Then sb.Append($" AUTOINCREMENT")
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
If IsPrimaryKey Then
sb.Append($" PRIMARY KEY")
End If
Return sb.ToString()
End Function
End Class

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,143 @@
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.AssemblySourceIdAttribute 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.AssemblySourceTimeStampAttribute 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.HelperMethods 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3_UTF16 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackup 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBase 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBlob 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteCommand 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteCommandBuilder 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataReaderValue 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteReadBlobEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteReadArrayEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteReadValueEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTypeCallbacks 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTypeCallbacksMap 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.ConnectionEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnection 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.BusyEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.ProgressEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.AuthorizerEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UpdateEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.CommitEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.TraceEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.WeakConnectionPool 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StrongConnectionPool 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.PoolQueue`1 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionPool 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticWeakConnectionPool`1 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticStrongConnectionPool`1 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionStringBuilder 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConvert 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteType 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMap 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMapping 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.TypeNameStringComparer 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataAdapter 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataReader 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDefineConstants 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteException 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteFactory 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteFunctionAttribute 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteKeyReader 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.LogEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteLog 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMetaDataCollectionNames 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteParameter 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteParameterCollection 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatement 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTransaction 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTransaction2 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTransactionBase 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.DebugData 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.NativeLibraryHelper 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsPosix 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsWin32 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethods 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionHandle 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatementHandle 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackupHandle 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBlobHandle 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteExtra 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteEnlistment 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteContext 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteValue 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexConstraint 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexOrderBy 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexConstraintUsage 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexInputs 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexOutputs 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndex 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemory 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteString 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBytes 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMarshal 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionHelpers 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionLock 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetIterator 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetIterator 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetIterator 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamAdapter 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionStreamManager 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeGroup 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSession 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetBase 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSet 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSet 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetEnumerator 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetEnumerator 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetEnumerator 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetMetadataItem 生成存根: 类型已密封。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.HelperMethods 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3_UTF16 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackup 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBase 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTypeCallbacksMap 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.WeakConnectionPool 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StrongConnectionPool 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.PoolQueue`1 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionPool 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticWeakConnectionPool`1 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticStrongConnectionPool`1 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteType 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMap 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMapping 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.TypeNameStringComparer 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataReader+ColumnParent 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDefineConstants 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteFunction+AggregateData 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteKeyReader 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatement 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.DebugData 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.NativeLibraryHelper 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsPosix 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsWin32 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethods 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatementHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackupHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBlobHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteEnlistment 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemory 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteString 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBytes 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMarshal 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteModule+SQLiteNativeModule 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionHelpers 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionLock 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetIterator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetIterator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetIterator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamAdapter 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionStreamManager 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeGroup 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSession 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetBase 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSet 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSet 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetEnumerator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetEnumerator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetEnumerator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetMetadataItem 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。

File diff suppressed because it is too large Load Diff

1647
Form1.Designer.vb generated Normal file

File diff suppressed because it is too large Load Diff

1898
Form1.resx Normal file

File diff suppressed because it is too large Load Diff

3624
Form1.vb Normal file

File diff suppressed because it is too large Load Diff

38
My Project/Application.Designer.vb generated Normal file
View File

@@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 此代码由工具生成。
' 运行时版本:4.0.30319.42000
'
' 对此文件的更改可能会导致不正确的行为,并且如果
' 重新生成代码,这些更改将会丢失。
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'注意:此文件是自动生成的;请勿直接进行修改。若要更改,
' 或者如果您在此文件中遇到生成错误,请转至项目设计器
' (转至“项目属性”或在解决方案资源管理器中双击“我的项目”节点)
' 然后在“应用程序”选项卡中进行更改。
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.NT318校时工具.Form1
End Sub
End Class
End Namespace

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>Form1</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>0</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' 有关程序集的一般信息由以下
' 控制。更改这些特性值可修改
' 与程序集关联的信息。
'查看程序集特性的值
<Assembly: AssemblyTitle("SetKernelParameter")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("Microsoft")>
<Assembly: AssemblyProduct("SetKernelParameter")>
<Assembly: AssemblyCopyright("Copyright © Microsoft 2021")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID
<Assembly: Guid("5c926092-3d2e-4100-9f4a-576f19c1a561")>
' 程序集的版本信息由下列四个值组成:
'
' 主版本
' 次版本
' 生成号
' 修订号
'
'可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
'通过使用 "*",如下所示:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.20")>
<Assembly: AssemblyFileVersion("1.0.0.20")>

72
My Project/Resources.Designer.vb generated Normal file
View File

@@ -0,0 +1,72 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 此代码由工具生成。
' 运行时版本:4.0.30319.42000
'
' 对此文件的更改可能会导致不正确的行为,并且如果
' 重新生成代码,这些更改将会丢失。
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'此类是由 StronglyTypedResourceBuilder
'类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
'若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
'(以 /str 作为命令选项),或重新生成 VS 项目。
'''<summary>
''' 一个强类型的资源类,用于查找本地化的字符串等。
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' 返回此类使用的缓存的 ResourceManager 实例。
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("NT318校时工具.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' 重写当前线程的 CurrentUICulture 属性,对
''' 使用此强类型资源类的所有资源查找执行重写。
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
'''<summary>
''' 查找类似 的本地化字符串。
'''</summary>
Friend ReadOnly Property SerialPort() As String
Get
Return ResourceManager.GetString("SerialPort", resourceCulture)
End Get
End Property
End Module
End Namespace

123
My Project/Resources.resx Normal file
View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="SerialPort" xml:space="preserve">
<value />
</data>
</root>

97
My Project/Settings.Designer.vb generated Normal file
View File

@@ -0,0 +1,97 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 此代码由工具生成。
' 运行时版本:4.0.30319.42000
'
' 对此文件的更改可能会导致不正确的行为,并且如果
' 重新生成代码,这些更改将会丢失。
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings 自动保存功能"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("")> _
Public Property SerialPortName() As String
Get
Return CType(Me("SerialPortName"),String)
End Get
Set
Me("SerialPortName") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("0")> _
Public Property SInTime() As Integer
Get
Return CType(Me("SInTime"),Integer)
End Get
Set
Me("SInTime") = value
End Set
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.NT318校时工具.My.MySettings
Get
Return Global.NT318校时工具.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@@ -0,0 +1,12 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="SerialPortName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SInTime" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings>
</SettingsFile>

72
My Project/app.manifest Normal file
View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。n
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
元素。
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
Windows 版本的列表。取消评论适当的元素,
Windows 将自动选择最兼容的环境。 -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI无需
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
-->
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

25
NT2406_Tool.sln Normal file
View File

@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.32602.291
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "NT318", "NT318.vbproj", "{B4DB404F-4536-481D-99E2-D1F44A79B55B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B4DB404F-4536-481D-99E2-D1F44A79B55B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B4DB404F-4536-481D-99E2-D1F44A79B55B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B4DB404F-4536-481D-99E2-D1F44A79B55B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B4DB404F-4536-481D-99E2-D1F44A79B55B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A54FC5BF-25C3-467C-A346-DB8B43A11000}
EndGlobalSection
EndGlobal

Binary file not shown.

312
NT318.vbproj Normal file
View File

@@ -0,0 +1,312 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\SQLite.3.13.0\build\net45\SQLite.props" Condition="Exists('packages\SQLite.3.13.0\build\net45\SQLite.props')" />
<Import Project="packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<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>{B4DB404F-4536-481D-99E2-D1F44A79B55B}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>NT318校时工具.My.MyApplication</StartupObject>
<RootNamespace>NT318校时工具</RootNamespace>
<AssemblyName>NT318校时工具</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<AutorunEnabled>true</AutorunEnabled>
<ApplicationRevision>19</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>NT318校时工具.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>NT318校时工具.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>twitter.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>553DF02EB4BF2B6AE64D9EBED0CA1283F73A4880</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>NT2406_Tool_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
<HintPath>packages\BouncyCastle.Cryptography.2.3.1\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="FlexCell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=6f86587eb70ee309, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>D:\Sync\RD_PC\Project\BLV_Studio\BLV_Studio_20220719-V4.1.0.10(新增项目管理功能前代码备份)\SourceCode\BLV_Studio\bin\Debug\FlexCell.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf, Version=3.26.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>packages\Google.Protobuf.3.26.1\lib\net45\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4, Version=1.3.8.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>packages\K4os.Compression.LZ4.1.3.8\lib\net462\K4os.Compression.LZ4.dll</HintPath>
</Reference>
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.3.8.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
<HintPath>packages\K4os.Compression.LZ4.Streams.1.3.8\lib\net462\K4os.Compression.LZ4.Streams.dll</HintPath>
</Reference>
<Reference Include="K4os.Hash.xxHash, Version=1.0.8.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
<HintPath>packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.QualityTools.Testing.Fakes, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="MySql.Data, Version=9.2.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>packages\MySql.Data.9.2.0\lib\net48\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="SqlSugar, Version=5.1.4.187, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\SqlSugar.5.1.4.187\lib\SqlSugar.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.ConfigurationManager, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll</HintPath>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\6374322614351286414968093\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Data.SQLite.EF6, Version=1.0.119.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>packages\System.Data.SQLite.EF6.1.0.119.0\lib\net46\System.Data.SQLite.EF6.dll</HintPath>
</Reference>
<Reference Include="System.Data.SQLite.Linq, Version=1.0.119.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>packages\System.Data.SQLite.Linq.1.0.119.0\lib\net46\System.Data.SQLite.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Deployment" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=8.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Pipelines, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.IO.Pipelines.5.0.2\lib\net461\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="ZstdSharp, Version=0.8.0.0, Culture=neutral, PublicKeyToken=8d151af33a4ad5cf, processorArchitecture=MSIL">
<HintPath>packages\ZstdSharp.Port.0.8.0\lib\net462\ZstdSharp.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Data.SQLite" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="Database\Base\ColumnSchema.vb" />
<Compile Include="Database\Base\CommandHelpers.vb" />
<Compile Include="Database\Base\DatabaseData.vb" />
<Compile Include="Database\Base\DatabaseSchema.vb" />
<Compile Include="Database\Base\ForeignKeySchema.vb" />
<Compile Include="Database\Base\IndexSchema.vb" />
<Compile Include="Database\Base\InsertParams.vb" />
<Compile Include="Database\Base\SearchCondition.vb" />
<Compile Include="Database\Base\SearchParams.vb" />
<Compile Include="Database\Base\TableSchema.vb" />
<Compile Include="Database\Base\TriggerBuilder.vb" />
<Compile Include="Database\Base\TriggerSchema.vb" />
<Compile Include="Database\Base\ViewSchema.vb" />
<Compile Include="Database\DbCmdHelper.vb" />
<Compile Include="Database\DbExecutor.vb" />
<Compile Include="Database\MssqlCmdHelper.vb" />
<Compile Include="Database\Mssql\MssqlCmdHelper.vb" />
<Compile Include="Database\MysqlCmdHelper.vb" />
<Compile Include="Database\MysqlDataParam.vb" />
<Compile Include="Database\Mysql\DataParam.vb" />
<Compile Include="Database\Mysql\MysqlCmdHelper.vb" />
<Compile Include="Database\SqliteCmdHelper.vb" />
<Compile Include="Database\SqliteDataParam.vb" />
<Compile Include="Database\Sqlite\DataParam.vb" />
<Compile Include="Database\Sqlite\SqliteCmdHelper.vb" />
<Compile Include="Form1.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.vb">
<DependentUpon>Form1.vb</DependentUpon>
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="ss.vb" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Fakes Include="Fakes\System.Data.SQLite.fakes" />
<None Include="My Project\app.manifest" />
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="App.config" />
<None Include="NT2406_Tool_TemporaryKey.pfx" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="bin\Debug\x64\SQLite.Interop.dll" />
<Content Include="bin\Debug\x86\SQLite.Interop.dll" />
<Content Include="twitter.ico" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.8 %28x86 和 x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
<Error Condition="!Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
<Error Condition="!Exists('packages\SQLite.3.13.0\build\net45\SQLite.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\SQLite.3.13.0\build\net45\SQLite.props'))" />
</Target>
<Import Project="packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<Import Project="packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
</Project>

17
NT318.vbproj.user Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>zh-CN</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>
</PropertyGroup>
</Project>

BIN
System.Data.SQLite.dll Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
bin/Debug/CommandSetDic.flx Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

54121
bin/Debug/EntityFramework.xml Normal file

File diff suppressed because it is too large Load Diff

BIN
bin/Debug/FlexCell.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

11497
bin/Debug/Google.Protobuf.xml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,245 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>K4os.Hash.xxHash</name>
</assembly>
<members>
<member name="T:K4os.Hash.xxHash.HashAlgorithmAdapter">
<summary>
Adapter implementing <see cref="T:System.Security.Cryptography.HashAlgorithm"/>
</summary>
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.#ctor(System.Int32,System.Action,System.Action{System.Byte[],System.Int32,System.Int32},System.Func{System.Byte[]})">
<summary>
Creates new <see cref="T:K4os.Hash.xxHash.HashAlgorithmAdapter"/>.
</summary>
<param name="hashSize">Hash size (in bytes)</param>
<param name="reset">Reset function.</param>
<param name="update">Update function.</param>
<param name="digest">Digest function.</param>
</member>
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.HashSize">
<inheritdoc />
</member>
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.Hash">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashCore(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashFinal">
<inheritdoc />
</member>
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.Initialize">
<inheritdoc />
</member>
<member name="T:K4os.Hash.xxHash.XXH">
<summary>
Base class for both <see cref="T:K4os.Hash.xxHash.XXH32"/> and <see cref="T:K4os.Hash.xxHash.XXH64"/>. Do not use directly.
</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH.#ctor">
<summary>Protected constructor to prevent instantiation.</summary>
</member>
<member name="T:K4os.Hash.xxHash.XXH32">
<summary>
xxHash 32-bit.
</summary>
</member>
<member name="T:K4os.Hash.xxHash.XXH32.State">
<summary>Internal state of the algorithm.</summary>
</member>
<member name="F:K4os.Hash.xxHash.XXH32.EmptyHash">
<summary>Hash of empty buffer.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32,System.UInt32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<param name="seed">Seed.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.ReadOnlySpan{System.Byte})">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Byte[],System.Int32,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.#ctor">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.#ctor(System.UInt32)">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Reset">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Reset(System.UInt32)">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Void*,System.Int32)">
<summary>Updates the hash using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte*,System.Int32)">
<summary>Updates the hash using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte[],System.Int32,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Digest">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.DigestBytes">
<summary>Hash so far, as byte array.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.AsHashAlgorithm">
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Reset(K4os.Hash.xxHash.XXH32.State@,System.UInt32)">
<summary>Resets hash calculation.</summary>
<param name="state">Hash state.</param>
<param name="seed">Hash seed.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(K4os.Hash.xxHash.XXH32.State@,System.Void*,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="state">Hash state.</param>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Update(K4os.Hash.xxHash.XXH32.State@,System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="state">Hash state.</param>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH32.Digest(K4os.Hash.xxHash.XXH32.State@)">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
<member name="T:K4os.Hash.xxHash.XXH64">
<summary>
xxHash 64-bit.
</summary>
</member>
<member name="T:K4os.Hash.xxHash.XXH64.State">
<summary>Internal state of the algorithm.</summary>
</member>
<member name="F:K4os.Hash.xxHash.XXH64.EmptyHash">
<summary>Hash of empty buffer.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32,System.UInt64)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
<param name="seed">Seed.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.ReadOnlySpan{System.Byte})">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Byte[],System.Int32,System.Int32)">
<summary>Hash of provided buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
<returns>Digest.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.#ctor">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.#ctor(System.UInt64)">
<summary>Creates xxHash instance.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Reset">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Reset(System.UInt64)">
<summary>Resets hash calculation.</summary>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Void*,System.Int32)">
<summary>Updates the hash using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte*,System.Int32)">
<summary>Updates the hash using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte[],System.Int32,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="bytes">Buffer.</param>
<param name="offset">Starting offset.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Digest">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.DigestBytes">
<summary>Hash so far, as byte array.</summary>
<returns>Hash so far.</returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.AsHashAlgorithm">
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Reset(K4os.Hash.xxHash.XXH64.State@,System.UInt64)">
<summary>Resets hash calculation.</summary>
<param name="state">Hash state.</param>
<param name="seed">Hash seed.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(K4os.Hash.xxHash.XXH64.State@,System.Void*,System.Int32)">
<summary>Updates the has using given buffer.</summary>
<param name="state">Hash state.</param>
<param name="bytes">Buffer.</param>
<param name="length">Length of buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Update(K4os.Hash.xxHash.XXH64.State@,System.ReadOnlySpan{System.Byte})">
<summary>Updates the has using given buffer.</summary>
<param name="state">Hash state.</param>
<param name="bytes">Buffer.</param>
</member>
<member name="M:K4os.Hash.xxHash.XXH64.Digest(K4os.Hash.xxHash.XXH64.State@)">
<summary>Hash so far.</summary>
<returns>Hash so far.</returns>
</member>
</members>
</doc>

Binary file not shown.

View File

@@ -0,0 +1,223 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Bcl.AsyncInterfaces</name>
</assembly>
<members>
<member name="T:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1">
<summary>Provides the core logic for implementing a manual-reset <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource"/> or <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource`1"/>.</summary>
<typeparam name="TResult"></typeparam>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation">
<summary>
The callback to invoke when the operation completes if <see cref="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)"/> was called before the operation completed,
or <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.s_sentinel"/> if the operation completed before a callback was supplied,
or null if a callback hasn't yet been provided and the operation hasn't yet completed.
</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuationState">
<summary>State to pass to <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation"/>.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext">
<summary><see cref="T:System.Threading.ExecutionContext"/> to flow to the callback, or null if no flowing is required.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._capturedContext">
<summary>
A "captured" <see cref="T:System.Threading.SynchronizationContext"/> or <see cref="T:System.Threading.Tasks.TaskScheduler"/> with which to invoke the callback,
or null if no special context is required.
</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._completed">
<summary>Whether the current operation has completed.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._result">
<summary>The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._error">
<summary>The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.</summary>
</member>
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._version">
<summary>The current version of this value, used to help prevent misuse.</summary>
</member>
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.RunContinuationsAsynchronously">
<summary>Gets or sets whether to force continuations to run asynchronously.</summary>
<remarks>Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.</remarks>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Reset">
<summary>Resets to prepare for the next operation.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetResult(`0)">
<summary>Completes with a successful result.</summary>
<param name="result">The result.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetException(System.Exception)">
<summary>Complets with an error.</summary>
<param name="error"></param>
</member>
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Version">
<summary>Gets the operation version.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetStatus(System.Int16)">
<summary>Gets the status of the operation.</summary>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetResult(System.Int16)">
<summary>Gets the result of the operation.</summary>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)">
<summary>Schedules the continuation action for this operation.</summary>
<param name="continuation">The continuation to invoke when the operation has completed.</param>
<param name="state">The state object to pass to <paramref name="continuation"/> when it's invoked.</param>
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
<param name="flags">The flags describing the behavior of the continuation.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ValidateToken(System.Int16)">
<summary>Ensures that the specified token matches the current version.</summary>
<param name="token">The token supplied by <see cref="T:System.Threading.Tasks.ValueTask"/>.</param>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SignalCompletion">
<summary>Signals that the operation has completed. Invoked after the result or error has been set.</summary>
</member>
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.InvokeContinuation">
<summary>
Invokes the continuation with the appropriate captured context / scheduler.
This assumes that if <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext"/> is not null we're already
running within that <see cref="T:System.Threading.ExecutionContext"/>.
</summary>
</member>
<member name="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions">
<summary>Provides a set of static methods for configuring <see cref="T:System.Threading.Tasks.Task"/>-related behaviors on asynchronous enumerables and disposables.</summary>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait(System.IAsyncDisposable,System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
<param name="source">The source async disposable.</param>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured async disposable.</returns>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
<typeparam name="T">The type of the objects being iterated.</typeparam>
<param name="source">The source enumerable being iterated.</param>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured enumerable.</returns>
</member>
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.WithCancellation``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Threading.CancellationToken)">
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
<typeparam name="T">The type of the objects being iterated.</typeparam>
<param name="source">The source enumerable being iterated.</param>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
<returns>The configured enumerable.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder">
<summary>Represents a builder for asynchronous iterators.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Create">
<summary>Creates an instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder"/> struct.</summary>
<returns>The initialized instance.</returns>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext``1(``0@)">
<summary>Invokes <see cref="M:System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"/> on the state machine while guarding the <see cref="T:System.Threading.ExecutionContext"/>.</summary>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="stateMachine">The state machine instance, passed by reference.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="awaiter">The awaiter.</param>
<param name="stateMachine">The state machine.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
<param name="awaiter">The awaiter.</param>
<param name="stateMachine">The state machine.</param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Complete">
<summary>Marks iteration as being completed, whether successfully or otherwise.</summary>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.ObjectIdForDebugger">
<summary>Gets an object that may be used to uniquely identify this builder to the debugger.</summary>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute">
<summary>Indicates whether a method is an asynchronous iterator.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute.#ctor(System.Type)">
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute"/> class.</summary>
<param name="stateMachineType">The type object for the underlying state machine type that's used to implement a state machine method.</param>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable">
<summary>Provides a type that can be used to configure how awaits on an <see cref="T:System.IAsyncDisposable"/> are performed.</summary>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1">
<summary>Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)">
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
<returns>The configured enumerable.</returns>
<remarks>This will replace any previous value set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)"/> for this iteration.</remarks>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)">
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
<returns>The configured enumerable.</returns>
<remarks>This will replace any previous <see cref="T:System.Threading.CancellationToken"/> set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)"/> for this iteration.</remarks>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator">
<summary>Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync">
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
<returns>
A <see cref="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1"/> that will complete with a result of <c>true</c>
if the enumerator was successfully advanced to the next element, or <c>false</c> if the enumerator has
passed the end of the collection.
</returns>
</member>
<member name="P:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current">
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.DisposeAsync">
<summary>
Performs application-defined tasks associated with freeing, releasing, or
resetting unmanaged resources asynchronously.
</summary>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerable`1">
<summary>Exposes an enumerator that provides asynchronous iteration over values of a specified type.</summary>
<typeparam name="T">The type of values to enumerate.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)">
<summary>Returns an enumerator that iterates asynchronously through the collection.</summary>
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> that may be used to cancel the asynchronous iteration.</param>
<returns>An enumerator that can be used to iterate asynchronously through the collection.</returns>
</member>
<member name="T:System.Collections.Generic.IAsyncEnumerator`1">
<summary>Supports a simple asynchronous iteration over a generic collection.</summary>
<typeparam name="T">The type of objects to enumerate.</typeparam>
</member>
<member name="M:System.Collections.Generic.IAsyncEnumerator`1.MoveNextAsync">
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
<returns>
A <see cref="T:System.Threading.Tasks.ValueTask`1"/> that will complete with a result of <c>true</c> if the enumerator
was successfully advanced to the next element, or <c>false</c> if the enumerator has passed the end
of the collection.
</returns>
</member>
<member name="P:System.Collections.Generic.IAsyncEnumerator`1.Current">
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
</member>
<member name="T:System.IAsyncDisposable">
<summary>Provides a mechanism for releasing unmanaged resources asynchronously.</summary>
</member>
<member name="M:System.IAsyncDisposable.DisposeAsync">
<summary>
Performs application-defined tasks associated with freeing, releasing, or
resetting unmanaged resources asynchronously.
</summary>
</member>
</members>
</doc>

Binary file not shown.

BIN
bin/Debug/MySql.Data.dll Normal file

Binary file not shown.

18595
bin/Debug/MySql.Data.xml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="NT318校时工具.application" version="1.0.0.19" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="NT318校时工具" asmv2:product="NT318校时工具" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" />
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework targetVersion="4.8" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks>
<dependency>
<dependentAssembly dependencyType="install" codebase="NT318校时工具.exe.manifest" size="33725">
<assemblyIdentity name="NT318校时工具.exe" version="1.0.0.19" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>jWbFUzPnFP/9U1LxN7s9yn8KKLjfV0CPgu2Y4/FeSU4=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
</asmv1:assembly>

Binary file not shown.

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="NT318校时工具.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.102.0" newVersion="1.0.102.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.2.0.0" newVersion="9.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite.EF6" />
<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
<remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /></DbProviderFactories>
</system.data>
<userSettings>
<NT318校时工具.My.MySettings>
<setting name="SerialPortName" serializeAs="String">
<value />
</setting>
<setting name="SInTime" serializeAs="String">
<value>0</value>
</setting>
</NT318校时工具.My.MySettings>
</userSettings>
</configuration>

View File

@@ -0,0 +1,583 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="NT318校时工具.exe" version="1.0.0.19" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<description asmv2:iconFile="twitter.ico" xmlns="urn:schemas-microsoft-com:asm.v1" />
<application />
<entryPoint>
<assemblyIdentity name="NT318校时工具" version="1.0.0.20" language="neutral" processorArchitecture="msil" />
<commandLine file="NT318校时工具.exe" parameters="" />
</entryPoint>
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet version="1" class="System.Security.NamedPermissionSet" Name="LocalIntranet" Description="Default rights given to applications on the local intranet" Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。n
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
元素。
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentOS>
<osVersionInfo>
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
</dependency>
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="BouncyCastle.Cryptography.dll" size="6956312">
<assemblyIdentity name="BouncyCastle.Cryptography" version="2.0.0.0" publicKeyToken="072EDCF4A5328938" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>9cU6NkxgtDdqaSNzthllqWlok0n5Z+Uix8Kdn3Eo1bs=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="EntityFramework.dll" size="4991352">
<assemblyIdentity name="EntityFramework" version="6.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>/0K8pwRgXhh6u0VSOGixUSjWrxworUCkV51QfTSpU7I=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="EntityFramework.SqlServer.dll" size="591752">
<assemblyIdentity name="EntityFramework.SqlServer" version="6.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>qWDdTS8PN7PAn/uVZ8MkJrh5ExDX65NcBMgZw9Rr1J4=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="FlexCell.dll" size="1286656">
<assemblyIdentity name="FlexCell" version="4.4.4.0" publicKeyToken="6F86587EB70EE309" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>fU3eI5lhl3kbpVU9uxoaqn7/U4ddo579M8SGYLbgufY=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Google.Protobuf.dll" size="473376">
<assemblyIdentity name="Google.Protobuf" version="3.26.1.0" publicKeyToken="A7D26565BAC4D604" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>NJmZEtXwnJmWoHm+QakbEe1yZKCGviScDp+j9ln+jU8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="K4os.Compression.LZ4.dll" size="75264">
<assemblyIdentity name="K4os.Compression.LZ4" version="1.3.8.0" publicKeyToken="2186FA9121EF231D" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>ba3nlmT0ihY9aGTISgpsXFW4Vr3680uhh8h/GPkWcjg=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="K4os.Compression.LZ4.Streams.dll" size="83456">
<assemblyIdentity name="K4os.Compression.LZ4.Streams" version="1.3.8.0" publicKeyToken="2186FA9121EF231D" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>NvHKAfElIqDFD4/kjNBq3CRXHuKg/ySDFbOIuL0A9IQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="K4os.Hash.xxHash.dll" size="13312">
<assemblyIdentity name="K4os.Hash.xxHash" version="1.0.8.0" publicKeyToken="32CD54395057CEC3" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>/V++r7OuWbRdvGrGuGfs2+tLS3Fa3rxdF2bhVeY5yvM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Bcl.AsyncInterfaces.dll" size="20872">
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" version="5.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>B1znnoQEETfHiIWzc4wbWgNUfQrip5kW6EQZap0Owds=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.QualityTools.Testing.Fakes.dll" size="291240">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>7vlKOf+xKLft6Nw+iTql2d3NMMQWyvaMAXU0hjkfqTE=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="cs\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18352">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="cs" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>1bfUEwssGf9LpqjScNnNYkQNkJXE+ZRHUDkV8yQ8imE=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="de\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18320">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="de" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>arzDO26hBizFnMgwIym5qbteKZCaYE76sMTFQDIMlS8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="es\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18320">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="es" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>mJXsCt/mMTOQBaf0b1TWvXihS7V1DviGEzUwzwTU1bg=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="fr\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18320">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="fr" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>U8fsnsd6lnATQT/egLiE/sDzeegQiVtyJSqmQ+yS7eA=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="it\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18352">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="it" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Ri/yxc7FPYBz2JtiM/4VlnNGk8zJzNVgD4s1ZZtLpQI=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ja\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18832">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="ja" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>V1163KRDWq+JTnP/g7pwv6ajgY7FNeG+cx4DmGtT2tI=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ko\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18320">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="ko" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>zevH3gQb0MO0cJ6C/YUvPj6pQiJmtnbVGVLE7t4qDbU=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="pl\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18320">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="pl" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>QH+nkSna5vMMRDErG9YHDd24w47j+DuSSCfbZ5bwnXc=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="pt-BR\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18352">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="pt-BR" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>lPIE8okBzZGm3tZTpVn1Q7YtVGhO7hbIqdeQHVdjVyA=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ru\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="19344">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="ru" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>HGkkpLAwURXUocM768E4CIPI+eJjJIP//QLrqZYjhlI=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="tr\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="18352">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="tr" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>bIc9FR4bFVsG5d1WJqcmQNqvS/Y8oqlW3p/pCxd6sOw=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="zh-Hans\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="17808">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="zh-Hans" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>cZz42uc6085Je3OLSYRrKiJG1Yj518RjdxOFveHRPUQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="zh-Hant\Microsoft.QualityTools.Testing.Fakes.resources.dll" size="17808">
<assemblyIdentity name="Microsoft.QualityTools.Testing.Fakes.resources" version="12.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="zh-Hant" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>5zgiIxcqwwXrfnPc1JFVbYsim3aT0xyFvgJ25tIsXPw=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MySql.Data.dll" size="1187912">
<assemblyIdentity name="MySql.Data" version="9.2.0.0" publicKeyToken="C5687FC88969C44D" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>ubTZKtooUZNXA5MPZbynAQemut67/NtLN8g9kmZWsQA=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Newtonsoft.Json.dll" size="711952">
<assemblyIdentity name="Newtonsoft.Json" version="13.0.0.0" publicKeyToken="30AD4FE6B2A6AEED" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>4eJ697B+7t9c5xqSVfBCKBam/FhJpIPGcU4bRyBE+p0=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="NT318校时工具.exe" size="372752">
<assemblyIdentity name="NT318校时工具" version="1.0.0.20" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>ZzYRtciSlGrrBAm+T6KbAJurYPepbyxoUP6DWovuCn4=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="SqlSugar.dll" size="2813952">
<assemblyIdentity name="SqlSugar" version="5.1.4.187" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>V/AIu33HtiM6nyKkWUGaAUnZsKocxWSRgr83Um27uyQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Buffers.dll" size="20856">
<assemblyIdentity name="System.Buffers" version="4.0.3.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>rMzPvkXZ8I/+7ZkW43sz6YxlvgEs//bn+ntnIQzh/vs=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Configuration.ConfigurationManager.dll" size="91824">
<assemblyIdentity name="System.Configuration.ConfigurationManager" version="8.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>vhBo0a8kBUmvzUjyLPzxWsEMRjBgClNErgJdMFUCmDQ=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Data.SQLite.dll" size="309760">
<assemblyIdentity name="System.Data.SQLite" version="1.0.102.0" publicKeyToken="DB937BC2D44FF139" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>gMWoxwR4y7/dltXcGqQtingz0PKp8SmYlVhaK9RyTnY=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Data.SQLite.EF6.dll" size="206520">
<assemblyIdentity name="System.Data.SQLite.EF6" version="1.0.119.0" publicKeyToken="DB937BC2D44FF139" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>JsARknFP5RoZF9xNv2kzTGtdHZiDSydv7wBpaepmrXY=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Data.SQLite.Linq.dll" size="206520">
<assemblyIdentity name="System.Data.SQLite.Linq" version="1.0.119.0" publicKeyToken="DB937BC2D44FF139" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>32xAvqqkkG5yvuEr4F2fg4F+pspcVmNs+J+hXxXJXGA=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Diagnostics.DiagnosticSource.dll" size="189104">
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" version="8.0.0.1" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>GIdZJhX8CLvJGtYjB8jBHfwUxFvxINJx1mvkoNGhSac=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.IO.Pipelines.dll" size="72592">
<assemblyIdentity name="System.IO.Pipelines" version="5.0.0.2" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>kdZASqIUqkuiHgZhgKiMvpVl5SMWSRERy38jn8SYL4I=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Memory.dll" size="142240">
<assemblyIdentity name="System.Memory" version="4.0.1.2" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>vz+4RmT0CX8aipvHGlHc+M8akF1AgKTSkNoXMIZuhW8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Numerics.Vectors.dll" size="115856">
<assemblyIdentity name="System.Numerics.Vectors" version="4.1.4.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>HT74aYKB589zcdFVSv71hys5+Wwm2nciEKM9oEG6EYM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Runtime.CompilerServices.Unsafe.dll" size="18024">
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" version="6.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>N3aEiOjvRXKbx9miZ3YzxkUAQpdbuWUW4YbabLnNDc8=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Threading.Tasks.Extensions.dll" size="25984">
<assemblyIdentity name="System.Threading.Tasks.Extensions" version="4.2.0.1" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>T4H/0NxyBNt1r8NepCkXabB8RAWS8oiUJg7qdmJqI8Y=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ZstdSharp.dll" size="442368">
<assemblyIdentity name="ZstdSharp" version="0.8.0.0" publicKeyToken="8D151AF33A4AD5CF" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>MJMwwGHBeSdGj9AATQVmQ/tbZ5FRQB5syUdhET+525c=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<file name="bin\Debug\x64\SQLite.Interop.dll" size="1408512">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>CA0joXWjephERCJ2m3DUmXiNTCCEnnIEHfikawcagDU=</dsig:DigestValue>
</hash>
</file>
<file name="bin\Debug\x86\SQLite.Interop.dll" size="1063936">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>qEteaDndA8SvziyeEEnIBIH9q3ET1PS1OqxIDfFGoQw=</dsig:DigestValue>
</hash>
</file>
<file name="NT318校时工具.exe.config" size="3605">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>0sBKOFfWUOSKDR7Oy99G6ckMra0HNu3GrvDCaknQkds=</dsig:DigestValue>
</hash>
</file>
<file name="twitter.ico" size="99678">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>B/ww4MkioMte7sU+EpZRQzqs+tevfTVD1npBoQGkPZ0=</dsig:DigestValue>
</hash>
</file>
<file name="x64\sqlite3.dll" size="1680384">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>zdbEB7YTcSgOScmis0r07AawGRmT5u3o77kjWZCDeXc=</dsig:DigestValue>
</hash>
</file>
<file name="x86\sqlite3.dll" size="826775">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>bersL5bIocIGmKk93UaNVEe1WsQm3Dge712RsZlTu3s=</dsig:DigestValue>
</hash>
</file>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
Windows 版本的列表。取消评论适当的元素,
Windows 将自动选择最兼容的环境。 -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
</asmv1:assembly>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

11363
bin/Debug/Newtonsoft.Json.xml Normal file

File diff suppressed because it is too large Load Diff

BIN
bin/Debug/SqlSugar.dll Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More