Imports System.IO Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Public Class frmQuery Inherits System.Windows.Forms.Form #Region " Vom Windows Form Designer generierter Code " Public Sub New() MyBase.New() ' Dieser Aufruf ist für den Windows Form-Designer erforderlich. InitializeComponent() ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen End Sub ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub ' Für Windows Form-Designer erforderlich Private components As System.ComponentModel.IContainer 'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich 'Sie kann mit dem Windows Form-Designer modifiziert werden. 'Verwenden Sie nicht den Code-Editor zur Bearbeitung. Friend WithEvents ToolBar1 As System.Windows.Forms.ToolBar Friend WithEvents ImageList1 As System.Windows.Forms.ImageList Friend WithEvents TextBox1 As System.Windows.Forms.TextBox Friend WithEvents ToolBarButton1 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton2 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton3 As System.Windows.Forms.ToolBarButton Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog Friend WithEvents Splitter1 As System.Windows.Forms.Splitter Friend WithEvents DokList As C1.Win.C1TrueDBGrid.C1TrueDBGrid Friend WithEvents ToolBarButton4 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton5 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton6 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton7 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton8 As System.Windows.Forms.ToolBarButton Friend WithEvents ToolBarButton9 As System.Windows.Forms.ToolBarButton Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox Friend WithEvents Label1 As System.Windows.Forms.Label Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmQuery)) Me.ToolBar1 = New System.Windows.Forms.ToolBar Me.ToolBarButton1 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton2 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton3 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton4 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton5 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton6 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton7 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton9 = New System.Windows.Forms.ToolBarButton Me.ToolBarButton8 = New System.Windows.Forms.ToolBarButton Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) Me.TextBox1 = New System.Windows.Forms.TextBox Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog Me.Splitter1 = New System.Windows.Forms.Splitter Me.DokList = New C1.Win.C1TrueDBGrid.C1TrueDBGrid Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog Me.ComboBox1 = New System.Windows.Forms.ComboBox Me.Label1 = New System.Windows.Forms.Label CType(Me.DokList, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'ToolBar1 ' Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ToolBarButton1, Me.ToolBarButton2, Me.ToolBarButton3, Me.ToolBarButton4, Me.ToolBarButton5, Me.ToolBarButton6, Me.ToolBarButton7, Me.ToolBarButton9, Me.ToolBarButton8}) Me.ToolBar1.DropDownArrows = True Me.ToolBar1.ImageList = Me.ImageList1 Me.ToolBar1.Location = New System.Drawing.Point(0, 0) Me.ToolBar1.Name = "ToolBar1" Me.ToolBar1.ShowToolTips = True Me.ToolBar1.Size = New System.Drawing.Size(600, 28) Me.ToolBar1.TabIndex = 27 ' 'ToolBarButton1 ' Me.ToolBarButton1.ImageIndex = 0 Me.ToolBarButton1.Name = "ToolBarButton1" Me.ToolBarButton1.ToolTipText = "Verlassen" ' 'ToolBarButton2 ' Me.ToolBarButton2.ImageIndex = 1 Me.ToolBarButton2.Name = "ToolBarButton2" Me.ToolBarButton2.ToolTipText = "SQL-Datei vom Filesystem laden" ' 'ToolBarButton3 ' Me.ToolBarButton3.ImageIndex = 2 Me.ToolBarButton3.Name = "ToolBarButton3" Me.ToolBarButton3.ToolTipText = "Abfrage ausführen" ' 'ToolBarButton4 ' Me.ToolBarButton4.ImageIndex = 3 Me.ToolBarButton4.Name = "ToolBarButton4" Me.ToolBarButton4.ToolTipText = "Markierte Zeilen/Spalten in die Zwischenablage kopieren" ' 'ToolBarButton5 ' Me.ToolBarButton5.Name = "ToolBarButton5" Me.ToolBarButton5.Style = System.Windows.Forms.ToolBarButtonStyle.Separator ' 'ToolBarButton6 ' Me.ToolBarButton6.ImageIndex = 5 Me.ToolBarButton6.Name = "ToolBarButton6" Me.ToolBarButton6.ToolTipText = "SQL-Abfrage aus der Datenbank laden" ' 'ToolBarButton7 ' Me.ToolBarButton7.ImageIndex = 7 Me.ToolBarButton7.Name = "ToolBarButton7" Me.ToolBarButton7.ToolTipText = "SQL-Abfrage speichen (Ctrl+V im Grid)" ' 'ToolBarButton9 ' Me.ToolBarButton9.Name = "ToolBarButton9" Me.ToolBarButton9.Style = System.Windows.Forms.ToolBarButtonStyle.Separator ' 'ToolBarButton8 ' Me.ToolBarButton8.ImageIndex = 4 Me.ToolBarButton8.Name = "ToolBarButton8" Me.ToolBarButton8.ToolTipText = "Resultattabelle in einer CSV-Datei Speichen (für Excel)" ' 'ImageList1 ' Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent Me.ImageList1.Images.SetKeyName(0, "") Me.ImageList1.Images.SetKeyName(1, "") Me.ImageList1.Images.SetKeyName(2, "") Me.ImageList1.Images.SetKeyName(3, "") Me.ImageList1.Images.SetKeyName(4, "") Me.ImageList1.Images.SetKeyName(5, "") Me.ImageList1.Images.SetKeyName(6, "") Me.ImageList1.Images.SetKeyName(7, "") ' 'TextBox1 ' Me.TextBox1.Dock = System.Windows.Forms.DockStyle.Top Me.TextBox1.Location = New System.Drawing.Point(0, 28) Me.TextBox1.Multiline = True Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(600, 159) Me.TextBox1.TabIndex = 28 ' 'OpenFileDialog1 ' Me.OpenFileDialog1.DefaultExt = "*.sql" ' 'Splitter1 ' Me.Splitter1.Dock = System.Windows.Forms.DockStyle.Top Me.Splitter1.Location = New System.Drawing.Point(0, 187) Me.Splitter1.Name = "Splitter1" Me.Splitter1.Size = New System.Drawing.Size(600, 3) Me.Splitter1.TabIndex = 29 Me.Splitter1.TabStop = False ' 'DokList ' Me.DokList.AllowUpdate = False Me.DokList.AllowUpdateOnBlur = False Me.DokList.AlternatingRows = True Me.DokList.Cursor = System.Windows.Forms.Cursors.Default Me.DokList.Dock = System.Windows.Forms.DockStyle.Fill Me.DokList.FetchRowStyles = True Me.DokList.FilterBar = True Me.DokList.GroupByCaption = "Drag a column header here to group by that column" Me.DokList.Images.Add(CType(resources.GetObject("DokList.Images"), System.Drawing.Image)) Me.DokList.Location = New System.Drawing.Point(0, 190) Me.DokList.Name = "DokList" Me.DokList.PreviewInfo.Location = New System.Drawing.Point(0, 0) Me.DokList.PreviewInfo.Size = New System.Drawing.Size(0, 0) Me.DokList.PreviewInfo.ZoomFactor = 75 Me.DokList.PrintInfo.PageSettings = CType(resources.GetObject("DokList.PrintInfo.PageSettings"), System.Drawing.Printing.PageSettings) Me.DokList.ScrollTips = True Me.DokList.Size = New System.Drawing.Size(600, 263) Me.DokList.TabIndex = 30 Me.DokList.Text = "C1TrueDBGrid1" Me.DokList.PropBag = resources.GetString("DokList.PropBag") ' 'SaveFileDialog1 ' Me.SaveFileDialog1.FileName = "doc1" ' 'ComboBox1 ' Me.ComboBox1.Location = New System.Drawing.Point(272, 4) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(312, 21) Me.ComboBox1.TabIndex = 31 Me.ComboBox1.Text = "ComboBox1" ' 'Label1 ' Me.Label1.Location = New System.Drawing.Point(184, 6) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(88, 16) Me.Label1.TabIndex = 32 Me.Label1.Text = "Abfrageauswahl" ' 'frmQuery ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(600, 453) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.ComboBox1) Me.Controls.Add(Me.DokList) Me.Controls.Add(Me.Splitter1) Me.Controls.Add(Me.TextBox1) Me.Controls.Add(Me.ToolBar1) Me.Name = "frmQuery" Me.Text = "SQL-Query" CType(Me.DokList, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() End Sub #End Region Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick Select Case ToolBar1.Buttons.IndexOf(e.Button) Case 0 Me.Close() Case 1 Me.OpenFileDialog1.ShowDialog() If Me.OpenFileDialog1.FileName <> "" Then Load_File(Me.OpenFileDialog1.FileName) End If Case 2 Run_Query() 'If UCase(Microsoft.VisualBasic.Left(Me.TextBox1.Text, 6)) <> "SELECT" Then ' MsgBox("Es können nur Select-Statements ausgeführt werden") ' Exit Sub 'Else ' Run_Query() 'End If Case 3 copydata() Case 5 'Load Query from Database Dim f As New frmDomainSQLQueries() f.DomainList.AllowAddNew = False f.ShowDialog() Try Me.TextBox1.Text = f.DomainList.Columns("query").Value Catch End Try f.Dispose() Case 6 Dim f As New frmDomainSQLQueries() Clipboard.SetDataObject(Me.TextBox1.Text) f.ShowDialog() f.Dispose() Case 8 If Me.DokList.Splits(0).Rows.Count > 0 Then Me.SaveFileDialog1.AddExtension = True Me.SaveFileDialog1.DefaultExt.Insert(0, "*.csv") Me.SaveFileDialog1.ShowDialog() If Me.SaveFileDialog1.FileName <> "" Then Me.DokList.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows, ";") ' Me.DokList.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows) End If End If End Select End Sub Private Sub copydata() Dim strTemp As String 'string to be copied to the clipboard Dim row As Long Dim col As C1.Win.C1TrueDBGrid.C1DataColumn Dim cols As Integer, rows As Long If Me.DokList.SelectedRows.Count > 0 Then For Each row In Me.DokList.SelectedRows For Each col In Me.DokList.Columns strTemp = strTemp & col.CellText(row) & vbTab Next strTemp = strTemp & vbCrLf Next System.Windows.Forms.Clipboard.SetDataObject(strTemp, False) Else End If End Sub Private Sub Load_File(ByVal Filename As String) Try Dim ofile As System.IO.File Dim oread As System.IO.StreamReader oread = ofile.OpenText(Filename) Me.TextBox1.Text = oread.ReadToEnd oread.Close() ofile = Nothing oread = Nothing Catch End Try End Sub Private Sub Run_Query() Try Dim qr As New SqlDataAdapter(Me.TextBox1.Text, Globals.sConnectionString) Dim dsi As New DataSet() Me.Cursor = Cursors.WaitCursor dsi.Tables.Clear() qr.Fill(dsi, "Daten") Me.DokList.DataSource = Nothing Try Me.DokList.DataSource = dsi.Tables(0) Me.DokList.DataMember = dsi.Tables(0).TableName Catch End Try Me.Cursor = Cursors.Default If dsi.Tables.Count < 1 Then MsgBox("Abfrage wurde erfolgreich beendet.") End If Catch ex As Exception Me.Cursor = Cursors.Default MsgBox(ex.Message) End Try End Sub Private Sub frmQuery_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.WindowState = FormWindowState.Maximized If DivFnkt.MA_Is_Sysadmin(Globals.MitarbeiterNr) = False Then Me.ComboBox1.Visible = True Me.Label1.Visible = True Me.TextBox1.ReadOnly = True Dim dt As New DataTable() dt = Me.get_queries(0) Me.ComboBox1.DataSource = dt Me.ComboBox1.DisplayMember = "beschreibung" Me.ComboBox1.ValueMember = "query" If dt.Rows.Count < 1 Then Me.ComboBox1.Text = "Keine Abfrage verfügbar" Else Me.ComboBox1.SelectedIndex = 0 End If Me.ToolBar1.Buttons(1).Enabled = False Me.ToolBar1.Buttons(5).Enabled = False Me.ToolBar1.Buttons(6).Enabled = False Else Me.ComboBox1.Visible = True Me.Label1.Visible = True Dim dt As New DataTable() dt = Me.get_queries(1) Me.ComboBox1.DataSource = dt Me.ComboBox1.DisplayMember = "beschreibung" Me.ComboBox1.ValueMember = "query" If dt.Rows.Count < 1 Then Me.ComboBox1.Text = "Keine Abfrage verfügbar" Else Me.ComboBox1.SelectedIndex = 0 End If End If End Sub Public Function get_queries(ByVal type As Integer) As DataTable Dim scmCmdToExecute As SqlCommand = New SqlCommand() Dim i As Integer Dim dtToReturn As DataTable = New DataTable() Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute) scmCmdToExecute.CommandText = "dbo.sp_sqlqueries_select" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@type", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Try Me.TextBox1.Text = Me.ComboBox1.SelectedValue Catch End Try End Sub End Class