TaskFlow/app/TaskFlow/frmConnection.vb
2025-11-13 10:27:02 +01:00

345 lines
16 KiB
VB.net

Imports Oracle.ManagedDataAccess.Client
Public Class frmConnection
Dim formloaded As Boolean = False
Private Sub cmbDbArt_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbDbArt.SelectedIndexChanged
load_controls
End Sub
Sub load_controls()
If Me.cmbDbArt.SelectedIndex <> -1 And formloaded = True Then
Chckwin_aut.Visible = False
chkOR_ohne_TNS.Visible = False
Select Case Me.cmbDbArt.SelectedItem
Case "MS-SQL"
Me.SERVERTextBox.Visible = True
Me.txtUserId.Visible = True
Me.txtPassword.Visible = True
Me.lblDataSource.Text = "SQL-Server (IP oder Name):"
Me.lblDataSource.Visible = True
Me.SERVERTextBox.ReadOnly = False
Me.btnMdbLocation.Visible = False
Me.btnMdbLöschen.Visible = False
Me.lblUserId.Visible = True
Me.lblUserId.Text = "UserId:"
Me.lblPassword.Visible = True
Me.lblPassword.Text = "Passwort:"
Me.lblDatasource2.Visible = True
Me.lblDatasource2.Text = "Datenbank:"
'Me.txtDatasource2.Visible = True
Me.DATENBANKComboBox.Visible = True
Chckwin_aut.Visible = True
Me.btnCheck_Con.Visible = True
Case "ORACLE"
Me.SERVERTextBox.Visible = True
Me.txtUserId.Visible = True
Me.txtPassword.Visible = True
Me.lblDataSource.Text = "Host (IP-Adresse):"
Me.SERVERTextBox.ReadOnly = False
Me.SERVERTextBox.BackColor = System.Drawing.SystemColors.Window
Me.btnMdbLocation.Visible = False
Me.btnMdbLöschen.Visible = False
Me.lblUserId.Text = "UserId:"
Me.lblPassword.Text = "Passwort:"
Me.lblDatasource2.Text = "SID:"
Me.lblDatasource2.Visible = True
'Me.txtDatasource2.Visible = True
Me.DATENBANKComboBox.Visible = True
chkOR_ohne_TNS.Visible = True
Me.btnCheck_Con.Visible = True
MsgBox("Bitte beachten Sie das Auswahllisten aktuell nur mit MS-SQl möglich sind", MsgBoxStyle.Information)
Case "ODBC"
Me.lblDataSource.Text = "DSN*:"
Me.SERVERTextBox.ReadOnly = False
Me.SERVERTextBox.BackColor = System.Drawing.SystemColors.Window
Me.btnMdbLocation.Visible = False
Me.btnMdbLöschen.Visible = False
Me.lblUserId.Text = "UserId:"
Me.lblPassword.Text = "Passwort:"
Me.lblDatasource2.Visible = False
'Me.txtDatasource2.Visible = False
Me.DATENBANKComboBox.Visible = False
MsgBox("Bitte beachten Sie das Auswahllisten aktuell nur mit MS-SQl möglich sind", MsgBoxStyle.Information)
Case "Ole (Access)"
Me.lblDataSource.Text = ".mdb Datei*:"
Me.SERVERTextBox.ReadOnly = True
Me.SERVERTextBox.BackColor = System.Drawing.SystemColors.Info
Me.btnMdbLocation.Visible = True
Me.btnMdbLöschen.Visible = True
Me.lblUserId.Text = "UserId:"
Me.lblPassword.Text = "Passwort:"
Me.lblDatasource2.Visible = False
'Me.txtDatasource2.Visible = False
Me.DATENBANKComboBox.Visible = False
End Select
Else
Me.SERVERTextBox.Visible = False
Me.txtUserId.Visible = False
Me.txtPassword.Visible = False
End If
End Sub
Private Sub btnCheck_Con_Click(sender As System.Object, e As System.EventArgs) Handles btnCheck_Con.Click
Try
If Me.cmbDbArt.SelectedIndex <> -1 Then
Dim connstr As String
Select Case Me.cmbDbArt.SelectedItem
Case "MS-SQL"
Dim con As String
If Chckwin_aut.Checked Then
'con = "Data Source=" & Me.SERVERTextBox.Text & ";Initial Catalog=" & Me.txtDatasource2.Text & ";Trusted_Connection=True;"
con = "Data Source=" & Me.SERVERTextBox.Text & ";Initial Catalog=" & Me.DATENBANKComboBox.Text & ";Trusted_Connection=True;"
Else
'con = "Server=" & Me.SERVERTextBox.Text & ";Database=" & Me.txtDatasource2.Text & ";User Id=" & Me.txtUserId.Text & ";Password=" & Me.txtPassword.Text & ";"
con = "Server=" & Me.SERVERTextBox.Text & ";Database=" & Me.DATENBANKComboBox.Text & ";User Id=" & Me.txtUserId.Text & ";Password=" & Me.txtPassword.Text & ";"
End If
Dim connection As New SqlClient.SqlConnection(con)
connstr = con
connection.Open()
Cursor = Cursors.Default
MsgBox("Die Verbindung wurde erfolgreich aufgebaut!", MsgBoxStyle.Information, "Erfolg:")
My.Settings.Save()
Case "ORACLE"
Try
Dim conn As New OracleConnectionStringBuilder
If chkOR_ohne_TNS.Checked Then
'connstr = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & SERVERTextBox.Text & ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" &
' txtDatasource2.Text & ")));User Id=" & txtUserId.Text & ";Password=" & txtPassword.Text & ";"
connstr = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & SERVERTextBox.Text & ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" &
DATENBANKComboBox.Text & ")));User Id=" & txtUserId.Text & ";Password=" & txtPassword.Text & ";"
Else
'conn.DataSource = txtDatasource2.Text
conn.DataSource = DATENBANKComboBox.Text
conn.UserID = txtUserId.Text
conn.Password = txtPassword.Text
conn.PersistSecurityInfo = True
conn.ConnectionTimeout = 120
connstr = conn.ConnectionString
End If
Dim connection As New OracleConnection(connstr)
connection.Open()
MsgBox("Die Verbindung wurde erfolgreich aufgebaut!", MsgBoxStyle.Information, "Erfolg:")
Catch ex As Exception
LOGGER.Error(ex)
MsgBox(ex.Message & vbNewLine & vbNewLine & connstr, MsgBoxStyle.Critical, "Fehler bei Verbindungsaufbau Oracle:")
End Try
Case Else
MsgBox("Test zur Zeit nicht möglich", MsgBoxStyle.Information, "Achtung:")
End Select
End If
Catch ex As Exception
LOGGER.Error(ex)
Cursor = Cursors.Default
Dim template As String = ex.Message
MsgBox("Fehler beim Verbindungsaufbau: " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub
Private Sub TBDD_CONNECTIONBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles TBDD_CONNECTIONBindingNavigatorSaveItem.Click
Try
Me.TBDD_CONNECTIONBindingSource.EndEdit()
If DD_DMSLiteDataSet.TBDD_CONNECTION.GetChanges Is Nothing = False Then
Me.GEANDERTWERTextBox.Text = USER_USERNAME
Me.TBDD_CONNECTIONBindingSource.EndEdit()
Me.TBDD_CONNECTIONTableAdapter.Update(DD_DMSLiteDataSet.TBDD_CONNECTION)
MsgBox("Changes successfully saved!", MsgBoxStyle.Information)
End If
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Error sving Connection: " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub
Private Sub frmConnection_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Try
load_connections()
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Error loading basic data: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub load_connections()
Try
Me.TBDD_CONNECTIONTableAdapter.Connection.ConnectionString = CONNECTION_STRING_ECM
Me.TBDD_CONNECTIONTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBDD_CONNECTION)
TBDD_CONNECTIONDataGridView.AutoResizeColumns()
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Error loading connections: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub Chckwin_aut_CheckedChanged(sender As Object, e As EventArgs) Handles Chckwin_aut.CheckedChanged
If Chckwin_aut.Checked Then
Me.txtUserId.Enabled = False
Me.txtPassword.Enabled = False
Me.txtUserId.Text = "WINAUTH"
Me.txtPassword.Text = ""
Me.txtPassword.Enabled = False
Else
Me.txtUserId.Enabled = True
Me.txtPassword.Enabled = True
Me.txtUserId.Text = ""
Me.txtPassword.Text = ""
Me.txtPassword.Enabled = True
End If
End Sub
Private Sub frmConnection_Shown(sender As Object, e As EventArgs) Handles Me.Shown
formloaded = True
load_controls()
End Sub
Private Sub TBDD_CONNECTIONBindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBDD_CONNECTIONBindingSource.AddingNew
DD_DMSLiteDataSet.TBDD_CONNECTION.ERSTELLTWERColumn.DefaultValue = USER_USERNAME
DD_DMSLiteDataSet.TBDD_CONNECTION.SQL_PROVIDERColumn.DefaultValue = "MS-SQL"
End Sub
Private Sub TBDD_CONNECTIONBindingSource_PositionChanged(sender As Object, e As EventArgs) Handles TBDD_CONNECTIONBindingSource.PositionChanged
load_controls()
End Sub
Private Sub chkOR_ohne_TNS_CheckedChanged(sender As Object, e As EventArgs) Handles chkOR_ohne_TNS.CheckedChanged
If chkOR_ohne_TNS.Checked Then
Me.lblDatasource2.Visible = True
'Me.txtDatasource2.Visible = True
Me.DATENBANKComboBox.Visible = True
Else
Me.lblDatasource2.Visible = False
'Me.txtDatasource2.Visible = False
'Me.txtDatasource2.Text = ""
Me.DATENBANKComboBox.Visible = True
Me.DATENBANKComboBox.Text = False
End If
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
TBDD_CONNECTIONBindingSource.AddNew()
' Me.grpbx_ConnAdd.Visible = True
End Sub
'Private Sub btnadd_Click(sender As Object, e As EventArgs) Handles btnadd.Click
' Try
' Select Case cmbDbArt.Text
' Case "ORACLE"
' Case "MS-SQL"
' If Me.txtUserId.Text = "WINAUTH" Then
' TBDD_CONNECTIONTableAdapter.CmdInsert(txtBezeichnung.Text, cmbDbArt.Text, SERVERTextBox.Text, txtDatasource2.Text, "WINAUTH", "", "", True, USER_USERNAME)
' Else
' TBDD_CONNECTIONTableAdapter.CmdInsert(txtBezeichnung.Text, cmbDbArt.Text, SERVERTextBox.Text, txtDatasource2.Text, txtUserId.Text, txtPassword.Text, "", True, USER_USERNAME)
' End If
' End Select
' Catch ex As Exception
' MsgBox("Fehler bei Insert Connection: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' End Try
' load_connections()
'End Sub
Private Sub TBDD_CONNECTIONDataGridView_SelectionChanged(sender As Object, e As EventArgs) Handles TBDD_CONNECTIONDataGridView.SelectionChanged
' grpbx_ConnAdd.Visible = False
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
Try
If GUIDTextBox.Text <> "" Then
Dim result As MsgBoxResult = MsgBox("Wollen Sie die Connection wirklich löschen?", MsgBoxStyle.YesNo, "Bestätigung erforderlich:")
' wenn Löschen ja
If result = MsgBoxResult.Yes Then
TBDD_CONNECTIONTableAdapter.Delete(GUIDTextBox.Text)
load_connections()
End If
End If
'Dim i, ID As Integer
'i = TBDD_CONNECTIONDataGridView.CurrentRow.Index
'ID = TBDD_CONNECTIONDataGridView.Item(0, i).Value
'If ID > 0 Then
'End If
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Fehler bei Löschen Connection: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub btnMdbLöschen_Click(sender As Object, e As EventArgs) Handles btnMdbLöschen.Click
End Sub
Private Sub txtUserId_TextChanged(sender As Object, e As EventArgs) Handles txtUserId.TextChanged
If Me.txtUserId.Text = "WINAUTH" Then
Me.Chckwin_aut.Checked = True
Else
Me.Chckwin_aut.Checked = False
End If
End Sub
Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
load_connections()
End Sub
Private Sub DATENBANKComboBox_Click(sender As Object, e As EventArgs) Handles DATENBANKComboBox.Click
Try
Me.Cursor = Cursors.WaitCursor
Dim csb As New SqlClient.SqlConnectionStringBuilder
If SERVERTextBox.Text = String.Empty Then
MsgBox("Please add a server!")
Exit Sub
End If
If Chckwin_aut.Checked Then
csb.DataSource = SERVERTextBox.Text
csb.IntegratedSecurity = True
Else
If txtUserId.Text = String.Empty Or txtPassword.Text = String.Empty Then
MsgBox("Please add user and password!")
Exit Sub
End If
csb.DataSource = SERVERTextBox.Text
csb.IntegratedSecurity = False
csb.UserID = txtUserId.Text
csb.Password = txtPassword.Text
End If
Dim connection As New SqlClient.SqlConnection(csb.ToString)
connection.Open()
Dim cmd As New SqlClient.SqlCommand("sp_databases", connection) With {.CommandType = CommandType.StoredProcedure}
Dim dr As SqlClient.SqlDataReader = cmd.ExecuteReader
If dr.HasRows Then
DATENBANKComboBox.Items.Clear()
Do While dr.Read
DATENBANKComboBox.Items.Add(dr.Item("Database_Name"))
Loop
DATENBANKComboBox.DroppedDown = True
Else
MsgBox("The standard-databases could not be retrieved. The default database will be set!" & vbNewLine & "Check rights in sql-server for user", MsgBoxStyle.Exclamation)
End If
connection.Close()
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Error while loading Databases. Default Database will be set!" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Finally
Me.Cursor = Cursors.Default
End Try
End Sub
Private Sub SYS_CONNECTIONCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles SYS_CONNECTIONCheckBox.CheckedChanged
If SYS_CONNECTIONCheckBox.Checked Then
GroupBox1.Enabled = False
Else
GroupBox1.Enabled = True
End If
End Sub
End Class