Files

661 lines
26 KiB
VB.net
Raw Permalink Normal View History

Imports System.IO
Imports System.Text
Imports System.Xml
Imports MySql.Data.MySqlClient
Imports UTS_Studio.UtsPath
Imports UTS_Core.Database.Mysql
Imports UTS_Core.UTSModule.DatabaseTable
Public Class ProjectInfo
''' <summary>
''' 初始化项目模式
''' </summary>
Enum InitializeModeEnum
''' <summary>
''' 云端加载项目信息
''' </summary>
RemoteLoad
''' <summary>
''' 本地加载项目信息
''' </summary>
LocalLoad
''' <summary>
''' 新建项目信息
''' </summary>
Create
End Enum
Sub New(userName As String, projectName As String)
Creator = userName
Name = projectName
Description = String.Empty
InitializeMode = InitializeModeEnum.Create
Station = New List(Of ProjectStationInfo)()
End Sub
Sub New(userName As String, projectName As String, mode As InitializeModeEnum)
Creator = userName
Name = projectName
Description = String.Empty
InitializeMode = mode
Station = New List(Of ProjectStationInfo)()
InitializeProject(projectName, InitializeMode)
End Sub
''' <summary>
''' 当前项目初始化方式
''' </summary>
''' <returns></returns>
Property InitializeMode() As InitializeModeEnum
''' <summary>
''' 项目代号,创建项目时生成,作为项目索引存在
''' </summary>
''' <returns></returns>
Property Code() As String
''' <summary>
''' 项目名称
''' </summary>
''' <returns></returns>
Property Name() As String
''' <summary>
''' 项目描述
''' </summary>
''' <returns></returns>
Property Description() As String
''' <summary>
''' 项目站集合
''' </summary>
''' <returns></returns>
Property Station() As List(Of ProjectStationInfo)
''' <summary>
''' 名称是否被修改
''' </summary>
''' <returns></returns>
Property NameChanged() As Boolean
''' <summary>
''' 项目描述是否被修改
''' </summary>
''' <returns></returns>
Property DescriptionChanged() As Boolean
''' <summary>
''' 项目创建者
''' </summary>
''' <returns></returns>
Property Creator() As String
''' <summary>
''' 初始化项目
''' </summary>
''' <param name="projectName"></param>
''' <param name="mode"></param>
Public Sub InitializeProject(projectName As String, mode As InitializeModeEnum)
If mode = InitializeModeEnum.RemoteLoad Then
LoadRemoteProject(projectName)
ElseIf mode = InitializeModeEnum.LocalLoad Then
LoadLocalProject(projectName)
ElseIf mode = InitializeModeEnum.Create Then
Code = Name '新建的项目代号与产品名称相同
Else
Console.WriteLine($"InitializeProject Untreated Mode:{mode}")
End If
End Sub
''' <summary>
''' 加载本地项目
''' </summary>
''' <param name="projectName"></param>
Private Sub LoadLocalProject(projectName As String)
Dim filename As String = $"{SystemDirPath}\{SystemFolderEnum.Temp}\{SystemTempFolderEnum.ProjectDesign}\{projectName}\{projectName}.xml"
Dim xd As New XmlDocument() : xd.Load(filename)
Dim nodeList As XmlNodeList = xd.SelectSingleNode("Project").ChildNodes
For Each node As XmlNode In nodeList
Dim xe As XmlElement = CType(node, XmlElement)
Select Case xe.LocalName
Case $"Code"
Code = xe.InnerText
Case $"Name"
Name = xe.InnerText
Case $"Description"
Description = xe.InnerText
Case "Stations"
LoadAllStation(node.ChildNodes)
Case Else
Console.WriteLine($"LoadLocalProject Unknow XmlNodeName:{xe.LocalName}")
End Select
Next
End Sub
''' <summary>
''' 加载项目所有站
''' </summary>
''' <param name="nodeList"></param>
Private Sub LoadAllStation(nodeList As XmlNodeList)
Station.Clear()
Dim xe As XmlElement
For Each node As XmlNode In nodeList
xe = CType(node, XmlElement)
Select Case xe.LocalName
Case "Station"
LoadStation(xe.ChildNodes)
End Select
Next
End Sub
''' <summary>
''' 加载测试站信息
''' </summary>
''' <param name="nodeList">Xml节点</param>
Private Sub LoadStation(nodeList As XmlNodeList)
Dim stationInfo As New ProjectStationInfo
Dim xe As XmlElement
For Each node As XmlNode In nodeList
xe = CType(node, XmlElement)
Select Case xe.LocalName
Case $"Code"
stationInfo.Code = xe.InnerText
Case $"Name"
stationInfo.Name = xe.InnerText
Case $"Description"
stationInfo.Description = xe.InnerText
Case $"PacketName"
stationInfo.PacketName = xe.InnerText
Case Else
Console.WriteLine($"LoadStationInfo Unknow XmlNodeName:{xe.LocalName}")
End Select
Next
Station.Add(stationInfo)
End Sub
''' <summary>
''' 加载远程项目站
''' </summary>
''' <param name="mysqlConn"></param>
''' <param name="projectName"></param>
Private Sub LoadRemoteProjectStation(mysqlConn As MySqlConnection, projectName As String)
Dim tableName As String = StationTable.TableName(projectName)
Dim colNames As String = $"{StationTable.ColNamesEnum.工作站编号},{StationTable.ColNamesEnum.操作站名},
{StationTable.ColNamesEnum.作业内容描述},{StationTable.ColNamesEnum.测试版本包名}"
Dim dtStation As DataTable = Executor.Search(mysqlConn, tableName, colNames)
Station.Clear()
For Each row As DataRow In dtStation.Rows
Station.Add(New ProjectStationInfo() With {
.Code = row(0).ToString(),
.Name = row(1).ToString(),
.Description = row(2).ToString(),
.PacketName = row(3).ToString()})
Next
End Sub
''' <summary>
''' 加载远程项目信息
''' </summary>
''' <param name="mysqlConn"></param>
''' <param name="projectName"></param>
Private Sub LoadRemoteProjectInfo(mysqlConn As MySqlConnection, projectName As String)
Dim tableName As String = ProjectTable.Name
Dim colNames As String = $"{ProjectTable.ColNamesEnum.功能描述},{ProjectTable.ColNamesEnum.项目代号}"
Dim condition As String = $"{ProjectTable.ColNamesEnum.产品名称} = '{projectName}' Limit 1"
Dim dtProject As DataTable = Executor.Search(mysqlConn, tableName, colNames, condition)
If dtProject.Rows.Count <= 0 Then Throw New Exception($"LoadRemoteProjectInfo Error,Not Find ProjectName - {projectName}")
Description = dtProject.Rows(0)(0).ToString()
Code = dtProject.Rows(0)(1).ToString()
End Sub
''' <summary>
''' 加载远程项目
''' </summary>
''' <param name="projectName"></param>
Private Sub LoadRemoteProject(projectName As String)
Dim connectionString As String = CommandHelpers.ConnectionString(ConnectionParams.Server, ConnectionParams.Port,
ConnectionParams.UserID, ConnectionParams.Password,
ConnectionParams.Database, ConnectionParams.Pooling)
Using mysqlConn As New MySqlConnection(connectionString)
LoadRemoteProjectInfo(mysqlConn, projectName)
LoadRemoteProjectStation(mysqlConn, projectName)
End Using
End Sub
''' <summary>
''' 加载本地项目列表
''' </summary>
''' <param name="parentPath"></param>
''' <returns></returns>
Private Shared Function LoadLocalProjectList(parentPath As String) As String()
If Directory.Exists(parentPath) = False Then Return New String() {}
Dim prjName, prjDirName As String
Dim lstProjects As New List(Of String)
Dim prjDirPaths As String() = Directory.GetDirectories(parentPath)
For Each prjDirPath As String In prjDirPaths
For Each fileName As String In Directory.GetFiles(prjDirPath)
prjName = Path.GetFileNameWithoutExtension(fileName)
prjDirName = Path.GetDirectoryName(fileName)
If prjDirName.EndsWith(prjName) Then
lstProjects.Add(prjName)
Exit For
End If
Next
Next
Return lstProjects.ToArray()
End Function
''' <summary>
''' 加载远程所有项目
''' </summary>
''' <param name="mysqlConn"></param>
''' <returns></returns>
Private Shared Function LoadRemoteAllProjects(mysqlConn As MySqlConnection) As String()
Dim tableName As String = ProjectTable.Name
Dim colNames As String = $"{ProjectTable.ColNamesEnum.产品名称}"
Dim dtProjects As DataTable = Executor.Search(mysqlConn, tableName, colNames)
Dim lstProjects As New List(Of String)
For Each row As DataRow In dtProjects.Rows
lstProjects.Add(row(0).ToString())
Next
Return lstProjects.ToArray()
End Function
''' <summary>
''' 加载远程项目列表
''' </summary>
''' <returns></returns>
Private Shared Function LoadRemoteProjectList() As String()
Dim connectionString As String = CommandHelpers.ConnectionString(ConnectionParams.Server, ConnectionParams.Port,
ConnectionParams.UserID, ConnectionParams.Password,
ConnectionParams.Database, ConnectionParams.Pooling)
Using mysqlConn As New MySqlConnection(connectionString)
Return LoadRemoteAllProjects(mysqlConn)
End Using
End Function
''' <summary>
''' 加载项目列表
''' </summary>
''' <param name="mode"></param>
''' <returns></returns>
Public Shared Function LoadProjectList(mode As InitializeModeEnum) As String()
Select Case mode
Case InitializeModeEnum.RemoteLoad
Return LoadRemoteProjectList()
Case InitializeModeEnum.LocalLoad
Dim parentPath As String = $"{SystemDirPath}\{SystemFolderEnum.Temp}\{SystemTempFolderEnum.ProjectDesign}"
Return LoadLocalProjectList(parentPath)
Case InitializeModeEnum.Create
Console.WriteLine($"LoadProjectList Untreated Mode:{mode}")
Return New String() {}
Case Else
Console.WriteLine($"LoadProjectList Untreated Mode:{mode}")
Return New String() {}
End Select
End Function
''' <summary>
''' 保存项目所有站信息
''' </summary>
''' <param name="xw"></param>
Private Sub SaveProjectAllStation(xw As XmlWriter)
xw.WriteStartElement($"Stations") '保存测试站信息节点
For Each stationInfo As ProjectStationInfo In Station
xw.WriteStartElement($"Station")
xw.WriteElementString("Code", stationInfo.Code)
xw.WriteElementString("Name", stationInfo.Name)
xw.WriteElementString("Description", stationInfo.Description)
xw.WriteElementString("PacketName", stationInfo.PacketName)
xw.WriteEndElement()
Next
xw.WriteEndElement()
End Sub
''' <summary>
''' 保存项目至本地文件
''' </summary>
''' <param name="filePath"></param>
Private Sub SaveProjectToLocalFile(filePath As String)
Dim xws As New XmlWriterSettings
With xws
.Indent = True
.NewLineOnAttributes = False
.Encoding = New UTF8Encoding(False)
End With
Dim xw As XmlWriter = XmlWriter.Create(filePath, xws)
xw.WriteStartDocument()
xw.WriteStartElement($"Project") '创建跟节点
xw.WriteElementString("Code", Code)
xw.WriteElementString("Name", Name)
xw.WriteElementString("Description", Description)
SaveProjectAllStation(xw)
xw.WriteEndElement()
xw.WriteEndDocument()
xw.Flush()
xw.Close()
End Sub
''' <summary>
''' 将项目信息保存至本Xml文件
''' </summary>
Public Sub ExportToXml()
Dim fileDirPath As String = $"{SystemDirPath}\{SystemFolderEnum.Temp}\{SystemTempFolderEnum.ProjectDesign}\{Name}"
Dim filePath As String = $"{fileDirPath}\{Name}.xml"
If Directory.Exists(fileDirPath) = False Then Directory.CreateDirectory(fileDirPath)
If File.Exists(filePath) Then File.Delete(filePath)
SaveProjectToLocalFile(filePath)
End Sub
Private Function ProjectExists(mysqlConn As MySqlConnection, project As ProjectInfo) As Boolean
Dim tableName As String = ProjectTable.Name
Dim colNames As String = $"{ProjectTable.ColNamesEnum.产品名称}"
Dim condition As String = $"{ProjectTable.ColNamesEnum.产品名称} = '{project.Name}'"
Dim dtProjects As DataTable = Executor.Search(mysqlConn, tableName, colNames, condition)
Return dtProjects.Rows.Count > 0
End Function
''' <summary>
''' 项目表修改原有项目信息
''' </summary>
''' <param name="mysqlConn"></param>
''' <param name="project"></param>
Private Sub UpdateProjectTable(mysqlConn As MySqlConnection, project As ProjectInfo)
If NameChanged Or DescriptionChanged Then
Dim tableName As String = ProjectTable.Name
Dim updateColValue As New Dictionary(Of String, String)
If NameChanged Then
updateColValue.Add(ProjectTable.ColNamesEnum.产品名称.ToString(), project.Name)
End If
If DescriptionChanged Then
updateColValue.Add(ProjectTable.ColNamesEnum.功能描述.ToString(), project.Description)
End If
Dim condition As String = $"{ProjectTable.ColNamesEnum.项目代号} = '{project.Code}'"
Using mysqlComm As MySqlCommand = mysqlConn.CreateCommand()
Executor.Update(mysqlComm, tableName, updateColValue, condition)
End Using
End If
End Sub
''' <summary>
''' 项目表添加新项目
''' </summary>
''' <param name="mysqlConn"></param>
''' <param name="project"></param>
Private Sub InsertProjectTable(mysqlConn As MySqlConnection, project As ProjectInfo)
Dim tableName As String = ProjectTable.Name
Dim insetColValue As New Dictionary(Of String, String)
insetColValue.Add(ProjectTable.ColNamesEnum.项目代号.ToString(), project.Code)
insetColValue.Add(ProjectTable.ColNamesEnum.产品名称.ToString(), project.Name)
insetColValue.Add(ProjectTable.ColNamesEnum.功能描述.ToString(), project.Description)
insetColValue.Add(ProjectTable.ColNamesEnum.Creator.ToString(), project.Creator)
insetColValue.Add(ProjectTable.ColNamesEnum.记录日期.ToString(), $"{Now:yyyy-MM-dd HH:mm:ss}")
Using mysqlComm As MySqlCommand = mysqlConn.CreateCommand()
Executor.Insert(mysqlComm, tableName, insetColValue)
End Using
End Sub
Private Sub AlterUserAuthTable(mysqlConn As MySqlConnection, project As ProjectInfo)
Dim num As Integer = Executor.AlterColumnCheckExists(mysqlConn, UserAuthTable.TableName, project.Name, UserAuthTable.ProjectColType, UserAuthTable.ProjectColIsNull)
Console.WriteLine($"AlterUserAuthTable num:{num}")
End Sub
Private Sub UploadUserAuthTable(mysqlConn As MySqlConnection, project As ProjectInfo)
AlterUserAuthTable(mysqlConn, project)
End Sub
Private Sub CreateErrorCodeTable(mysqlConn As MySqlConnection, project As ProjectInfo)
Executor.ExecuteNonQuery(mysqlConn, ErrorCodeTable.CreateTableString(project.Name))
End Sub
''' <summary>
''' 将表名添加到表版本记录表中,供数据同步软件下载
''' </summary>
''' <param name="mysqlConn"></param>
''' <param name="tableName"></param>
Private Sub InsertRowVersionTable(mysqlConn As MySqlConnection, tableName As String, syncType As TableVersionTable.SyncTypeEnum)
Dim keyValues As New Dictionary(Of String, String)
keyValues.Add(TableVersionTable.ColNamesEnum.TableName.ToString(), tableName)
keyValues.Add(TableVersionTable.ColNamesEnum.SyncType.ToString(), syncType.ToString())
keyValues.Add(TableVersionTable.ColNamesEnum.UpdateTime.ToString(), Now.ToString("yyyy-MM-dd HH:mm:ss"))
Executor.InsertRowCheckExists(mysqlConn, TableVersionTable.TableName,
TableVersionTable.ColNamesEnum.TableName.ToString(),
tableName,
keyValues)
End Sub
''' <summary>
''' 创建触发器,当源表变动时,同步更新版本记录表更新时间列
''' </summary>
''' <param name="mysqlConn">mysql连接句柄</param>
''' <param name="tableName">添加触发器的数据表名</param>
Private Sub AddressOfVersionTable(mysqlConn As MySqlConnection, tableName As String)
Executor.ExecuteNonQuery(mysqlConn, TableVersionTable.AfterInsertUpdateTimeTrigger(tableName))
Executor.ExecuteNonQuery(mysqlConn, TableVersionTable.AfterUpdateUpdateTimeTrigger(tableName))
Executor.ExecuteNonQuery(mysqlConn, TableVersionTable.AfterDeleteUpdateTimeTrigger(tableName))
End Sub
''' <summary>
''' 发布项目时更新上传ErrorCode表格
''' </summary>
Private Sub UploadErrorCodeTable(mysqlConn As MySqlConnection, project As ProjectInfo)
'创建错误代码表
CreateErrorCodeTable(mysqlConn, project)
'添加记录至VersionTable
InsertRowVersionTable(mysqlConn, ErrorCodeTable.TableName(project.Name), TableVersionTable.SyncTypeEnum.new)
'添加触发器触发器,当表变更时,更新VersionTable的数据
AddressOfVersionTable(mysqlConn, ErrorCodeTable.TableName(project.Name))
End Sub
Private Sub CreateStationTable(mysqlConn As MySqlConnection, project As ProjectInfo)
Executor.ExecuteNonQuery(mysqlConn, StationTable.CreateTableString(project.Name))
End Sub
''' <summary>
''' 发布项目时,更新项目站表信息
''' </summary>
''' <param name="mysqlConn">Mysql连接句柄</param>
''' <param name="project">项目信息</param>
Private Sub UploadStationTable(mysqlConn As MySqlConnection, project As ProjectInfo)
'因为项目站表名称根据项目不同会有所变化,所有需要提前记录
Dim tableName As String = StationTable.TableName(project.Name)
'创建项目站表
CreateStationTable(mysqlConn, project)
'添加记录至VersionTable
InsertRowVersionTable(mysqlConn, tableName, TableVersionTable.SyncTypeEnum.all)
'添加触发器触发器,当表变更时,更新VersionTable的数据
AddressOfVersionTable(mysqlConn, tableName)
End Sub
Private Sub CreateFlowChartTable(mysqlConn As MySqlConnection, project As ProjectInfo)
Executor.ExecuteNonQuery(mysqlConn, FlowChartTable.CreateTableString(project.Name))
End Sub
''' <summary>
''' 发布项目时,更新产品经过流程表信息
''' </summary>
''' <param name="mysqlConn">Mysql连接句柄</param>
''' <param name="project">项目信息</param>
Private Sub UploadFlowChartTable(mysqlConn As MySqlConnection, project As ProjectInfo)
CreateFlowChartTable(mysqlConn, project)
End Sub
Private Sub CreateReleaseLogTable(mysqlConn As MySqlConnection, project As ProjectInfo)
Executor.ExecuteNonQuery(mysqlConn, ReleaseLogTable.CreateTableString(project.Name))
End Sub
''' <summary>
''' 发布项目时,更新项目站发布记录表信息
''' </summary>
''' <param name="mysqlConn">Mysql连接句柄</param>
''' <param name="project">项目信息</param>
Private Sub UploadReleaseLogTable(mysqlConn As MySqlConnection, project As ProjectInfo)
CreateReleaseLogTable(mysqlConn, project)
End Sub
Private Sub UploadProjectTable(mysqlConn As MySqlConnection, project As ProjectInfo)
If ProjectExists(mysqlConn, project) Then
UpdateProjectTable(mysqlConn, project)
Else
InsertProjectTable(mysqlConn, project) '项目表添加一行
End If
End Sub
''' <summary>
''' 更新上传项目信息
''' </summary>
''' <param name="mysqlConn"></param>
''' <param name="project"></param>
Private Sub UploadProjectInfo(mysqlConn As MySqlConnection, project As ProjectInfo)
UploadProjectTable(mysqlConn, project) '将项目信息更新到项目表
UploadUserAuthTable(mysqlConn, project) '用户权限表添加一个项目列
UploadErrorCodeTable(mysqlConn, project) '创建错误代码ErrorCode表,并在Version表添加记录,添加触发器
UploadStationTable(mysqlConn, project) '创建项目站Process表并在Version表添加记录'添加触发器
UploadFlowChartTable(mysqlConn, project) '创建流程签名FlowChart表
UploadReleaseLogTable(mysqlConn, project) '创建发布记录ReleaseLog表
End Sub
Private Sub InsertRowStationTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
Dim keyValues As New Dictionary(Of String, String)
keyValues.Add(StationTable.ColNamesEnum.工作站编号.ToString(), stationInfo.Code)
keyValues.Add(StationTable.ColNamesEnum.Creator.ToString(), stationInfo.Author)
keyValues.Add(StationTable.ColNamesEnum.操作站名.ToString(), stationInfo.Name)
keyValues.Add(StationTable.ColNamesEnum.作业内容描述.ToString(), stationInfo.Description)
keyValues.Add(StationTable.ColNamesEnum.测试版本包名.ToString(), stationInfo.PacketName)
Executor.InsertRowCheckExists(mysqlConn, StationTable.TableName(project.Name),
StationTable.ColNamesEnum.工作站编号.ToString(),
stationInfo.Code,
keyValues)
End Sub
Private Sub UploadStationTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
InsertRowStationTable(mysqlConn, project, stationInfo)
End Sub
Private Sub CreateErrorLogTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
Executor.ExecuteNonQuery(mysqlConn, ErrorLogTable.CreateTableString(project.Name, stationInfo.Code))
End Sub
Private Sub UploadErrorLogTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
'创建站错误代码记录表
CreateErrorLogTable(mysqlConn, project, stationInfo)
'添加记录至VersionTable
InsertRowVersionTable(mysqlConn, ErrorLogTable.TableName(project.Name, stationInfo.Code), TableVersionTable.SyncTypeEnum.new)
'添加触发器触发器,当表变更时,更新VersionTable的数据
AddressOfVersionTable(mysqlConn, ErrorLogTable.TableName(project.Name, stationInfo.Code))
End Sub
Private Sub CreateTestLogTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
Executor.ExecuteNonQuery(mysqlConn, TestLogTable.CreateTableString(project.Name, stationInfo.Code))
End Sub
Private Sub UploadTestLogTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
CreateTestLogTable(mysqlConn, project, stationInfo) '创建站测试记录表
'添加触发器,测试失败时,将失败记录添加到错误代码记录表中(考虑删除,手动增加)
End Sub
Private Sub AlterFlowChartTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
Dim num As Integer = Executor.AlterColumnCheckExists(mysqlConn, FlowChartTable.TableName(project.Name), stationInfo.Code, FlowChartTable.StationColType, FlowChartTable.StationColIsNull)
Console.WriteLine($"AlterFlowChartTable num:{num}")
End Sub
Private Sub UploadStationFlowChartTable(mysqlConn As MySqlConnection, project As ProjectInfo, stationInfo As ProjectStationInfo)
AlterFlowChartTable(mysqlConn, project, stationInfo)
End Sub
Private Sub UploadStationInfo(mysqlConn As MySqlConnection, project As ProjectInfo)
For Each stationInfo As ProjectStationInfo In project.Station
UploadStationTable(mysqlConn, project, stationInfo) '项目站Process表更新一行数据
UploadErrorLogTable(mysqlConn, project, stationInfo) '创建错误记录ErrorLog表,并在Version表添加记录,添加触发器
UploadTestLogTable(mysqlConn, project, stationInfo) '创建测试站记录表,添加触发器?
UploadStationFlowChartTable(mysqlConn, project, stationInfo) '流程签名FlowChart表新增项目站列
'成功发布站包则更新项目站发布Release记录(当前工具仅供设计项目及其包含测试站,不支持发布站包功能,所以不处理当前功能)
Next
End Sub
Private Sub ReleaseDataToDatabase()
'项目创建者要当前用户关联
'项目站要与当前用户关联
Dim connectionString As String = CommandHelpers.ConnectionString(ConnectionParams.Server, ConnectionParams.Port,
ConnectionParams.UserID, ConnectionParams.Password,
ConnectionParams.Database, ConnectionParams.Pooling)
Using mysqlConn As New MySqlConnection(connectionString)
mysqlConn.Open()
UploadProjectInfo(mysqlConn, Me) '更新数据库项目相关信息
UploadStationInfo(mysqlConn, Me) '更新数据库项目站相关信息
mysqlConn.Close()
End Using
End Sub
''' <summary>
''' 发布项目
''' </summary>
Public Sub Release()
ExportToXml()
ReleaseDataToDatabase()
End Sub
End Class