You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
6.2 KiB
171 lines
6.2 KiB
Imports System.IO
|
|
Imports System.Data
|
|
Imports System.Data.SqlTypes
|
|
Imports System.Data.SqlClient
|
|
Public Class frmQuery
|
|
|
|
Dim q As New TKB.VV.DB.clsQueries
|
|
Dim queries As New DataTable
|
|
|
|
|
|
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
|
|
Private Sub TSBtnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnRun.Click
|
|
Dim q As String = Me.txtQuery.Text
|
|
q = UCase(q)
|
|
If q.IndexOf("INSERT ") > -1 Or q.IndexOf("UPDATE ") > -1 Or q.IndexOf("ALTER ") > -1 Or q.IndexOf("DROP ") > -1 Or q.IndexOf("TRUNCATE ") > -1 Or q.IndexOf("EXEC ") > -1 Or _
|
|
q.IndexOf("EXECUTE ") > -1 Or q.IndexOf("CREATE ") > -1 Or q.IndexOf("WRITETEXT ") > -1 Or q.IndexOf("RUN ") > -1 Or q.IndexOf("DEL ") > -1 Or q.IndexOf("DELETE ") > -1 Then
|
|
MsgBox("Das Query enthält ein unzulässiges Statement und kann nicht ausgeführt werden.", MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
Run_Query()
|
|
End Sub
|
|
|
|
Private Sub Run_Query()
|
|
Try
|
|
|
|
Dim qr As New SqlDataAdapter(Me.txtQuery.Text, Globals.sConnectionString)
|
|
Dim dsi As New DataSet()
|
|
Me.Cursor = Cursors.WaitCursor
|
|
dsi.Tables.Clear()
|
|
qr.Fill(dsi, "Daten")
|
|
Me.C1Daten.DataSource = Nothing
|
|
Try
|
|
Me.C1Daten.DataSource = dsi.Tables(0)
|
|
Me.C1Daten.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 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.C1Daten.SelectedRows.Count > 0 Then
|
|
For Each row In Me.C1Daten.SelectedRows
|
|
For Each col In Me.C1Daten.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 TSBtnExcelExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnExcelExport.Click
|
|
Me.SaveFileDialog1.AddExtension = True
|
|
Me.SaveFileDialog1.DefaultExt.Insert(0, "*.xls")
|
|
Me.SaveFileDialog1.Filter = "Excel-Dateien|*.xls"
|
|
|
|
Me.SaveFileDialog1.ShowDialog()
|
|
If Me.SaveFileDialog1.FileName <> "" Then
|
|
If Me.SaveFileDialog1.FileName.EndsWith(".xls") Or Me.SaveFileDialog1.FileName.EndsWith("XLS") Then
|
|
Me.DatatableToExcel(Me.C1Daten.DataSource, Me.SaveFileDialog1.FileName)
|
|
Else
|
|
Me.C1Daten.ExportToDelimitedFile(Me.SaveFileDialog1.FileName, C1.Win.C1TrueDBGrid.RowSelectorEnum.AllRows, ";", "", "", True, System.Text.Encoding.Default.BodyName)
|
|
End If
|
|
End If
|
|
Exit Sub
|
|
End Sub
|
|
|
|
|
|
Public Shared Function DatatableToExcel(ByVal aDataTable As DataTable, ByVal aOutputFilename As String) As Boolean
|
|
Application.DoEvents()
|
|
Dim f As New FrmFortschritt
|
|
Dim app As New Object
|
|
Dim wb As New Object
|
|
Dim ws As New Object
|
|
Try
|
|
f.Show()
|
|
Application.DoEvents()
|
|
f.ProgressBar1.Minimum = 0
|
|
f.ProgressBar1.Maximum = aDataTable.Rows.Count
|
|
app = CreateObject("Excel.application")
|
|
'Dim wb As Object
|
|
'Dim ws As Object
|
|
' Dim app As New Excel.ApplicationClass
|
|
' Dim wb As Excel.Workbook
|
|
' Dim ws As Excel.Worksheet
|
|
wb = app.Workbooks.add()
|
|
'wb = app.Workbooks.Add()
|
|
ws = wb.ActiveSheet()
|
|
Dim dc As DataColumn
|
|
Dim dr As DataRow
|
|
Dim colIndex As Integer
|
|
Dim rowIndex As Integer
|
|
' Columns erstellen
|
|
For Each dc In aDataTable.Columns
|
|
colIndex += 1
|
|
app.Cells(1, colIndex) = dc.ColumnName
|
|
Next
|
|
' Rows hinzufügen
|
|
For Each dr In aDataTable.Rows
|
|
f.ProgressBar1.Value = rowIndex
|
|
rowIndex += 1
|
|
colIndex = 0
|
|
For Each dc In aDataTable.Columns
|
|
colIndex += 1
|
|
app.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
|
|
Next
|
|
Next
|
|
ws.Columns.AutoFit()
|
|
wb.SaveAs(aOutputFilename)
|
|
app.Workbooks.Open(aOutputFilename)
|
|
' Excel anzeigen wenn fertig exportiert
|
|
app.Visible = True
|
|
ws = Nothing
|
|
wb = Nothing
|
|
app = Nothing
|
|
|
|
f.Close()
|
|
Return True
|
|
Catch ex As Exception
|
|
f.Close()
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
|
|
|
|
End Function
|
|
|
|
|
|
Private Sub frmQuery_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
q.cpMainConnectionProvider = Globals.conn
|
|
queries = q.SelectAll
|
|
For Each dr As DataRow In queries.Rows
|
|
Me.TSCBQuery.Items.Add(dr.Item("Bezeichnung"))
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub TSCBQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSCBQuery.Click
|
|
|
|
End Sub
|
|
|
|
Private Sub TSCBQuery_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TSCBQuery.SelectedIndexChanged
|
|
End Sub
|
|
|
|
Private Sub TSCBQuery_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TSCBQuery.TextChanged
|
|
For Each dr As DataRow In queries.Rows
|
|
If dr.Item("bezeichnung") = TSCBQuery.Text Then Me.txtQuery.Text = dr.Item("Beschreibung")
|
|
Next
|
|
|
|
End Sub
|
|
|
|
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
|
|
Me.Close()
|
|
End Sub
|
|
End Class |