返回首页

{A}介绍
文件审核查看器查看输出文件服务器审计解决问题。 {A2的}使用Microsoft SQL读取输出文件服务器审计,然后像接口的数据透视表中显示它。背景
我写这篇阅读输出到文件服务器审核,以帮助我的同事。使用代码
代码枚举量为每记录,然后组织,因此它可以分析更容易。扩展记录可以看到相关信息。全局变量

'SQL Connection

Public objSQLConnection As System.Data.SqlClient.SqlConnection = _

New System.Data.SqlClient.SqlConnection(My.Settings.SQLConnection)

'Global variables for communication between threads

Public strParentField As String

Public c1Field As String



Public c2Field As String



Public c3Field As String



Public c4Field As String



Public c5Field As String



Public c6Field As String



Public intParentkey As Integer

Public intc1key As Integer

Public intc2key As Integer

Public intc3key As Integer

Public intc4key As Integer

Public intc5key As Integer

Public intc6key As Integer

Public IsInherited As Boolean = False

Public StrRunDate As String

Public StrDriveLetter As String

Public StrSelectedTreeView As String

Public StrDatabase As String

Public StrTableName As String = My.Settings.SQLTable

设置的BackgroundWorker子,列举了记录。{C}
现在我们打开SQL连接和循环,虽然所有的父节点添加到TreeView。
'Updates title in form

Me.Invoke(UpdateTitleDel, "Working")

StartTime = Now

'open the connection

objSQLConnection.Open()

'Select parent data using strParentField

If Not IsInherited Then

	strSQL = "SELECT distinct [" & strParentField & "]" _

	 & " FROM [" & My.Settings.SQLTable & "]" _

	 & " Where [RunDate] = '" & StrRunDate & "' And [IsInherited] = '" & _

	 IsInherited.ToString & "' And SUBSTRING([FolderPath],1,3) = '" _

	 & StrDriveLetter & "'" _

	 & " ORDER BY [" & strParentField & "];"

Else

	strSQL = "SELECT distinct [" & strParentField & "]" _

	 & " FROM [" & My.Settings.SQLTable & "]" _

	 & " Where [RunDate] = '" & StrRunDate & "'  _

	 And SUBSTRING([FolderPath],1,3) = '" & StrDriveLetter & "'" _

	 & " ORDER BY [" & strParentField & "];"

End If

objSQLDataAdapter = New System.Data.SqlClient.SqlDataAdapter(strSQL, objSQLConnection)

'Try to use parent data

Try

	'Fill ptable

	ObjDataSet = New System.Data.DataSet

	objSQLDataAdapter.Fill(ObjDataSet, My.Settings.SQLTable)

	ptable = ObjDataSet.Tables(My.Settings.SQLTable)

	'Loops though all parent records

	For Each parentrow In ptable.Rows

		'checks for cancellation

		If BackgroundWorker1.CancellationPending = True Then

			Exit Try

		End If

		'Add parent node on to root node

		pnode = New TreeNode(parentrow(strParentField))

		Me.Invoke(UpdateTreeViewDel, pnode, StrSelectedTreeView)

下面,我们虽然所有的第1个孩子将它们添加到父节点的节点循环。{体C3}
现在,我们循环虽然所有的第二个孩子加入他们的第一子节点的节点。我们还添加了所有剩余的信息。{的C4}
关闭SQL连接和End Sub。{C5的}
在这里,子父节点添加到TreeView的根。也添加子节点的功能。这些都必须虽然委托,并呼吁通过使用调用命令。{5233}景点
总是代码和输入中的错误和你永远无法编写他们周围的一切,但你可以得到它,你想要做什么工作。感谢大家的帮助我学习。历史
版本1.0.0从MSSQL中读取表布局:
表名:FileAudit列名数据类型编号INTFolderPath为nvarchar(max)AccountSAMAccountName为nvarchar(max)GroupSAMAccountName为nvarchar(max)的ManagedBy为nvarchar(max)继承权为nvarchar(max)权利为nvarchar(max)业主为nvarchar(max)RunDateBIGINTIsInheritedVARCHAR(50)

回答

评论会员:R 时间:2