{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)