TvSettingsNew

This commit is contained in:
2024-12-09 17:43:40 +01:00
parent 69fb7008a1
commit 68fe0128b7
3 changed files with 445 additions and 365 deletions

View File

@@ -382,7 +382,7 @@
<data name="passpic" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\passpic.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="house" type="System.Resources.ResXFileRef, System.Windows.Forms">
<data name="house" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\house.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="therefore" type="System.Resources.ResXFileRef, System.Windows.Forms">

View File

@@ -3364,7 +3364,6 @@
<EmbeddedResource Include="mdm\usrCntlMDMDatenverarbeitungAuswertungen_divers.resx">
<DependentUpon>usrCntlMDMDatenverarbeitungAuswertungen_divers.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\licenses.licx" />
<EmbeddedResource Include="OriginalArchiv_ATR\frmATR.resx">
<DependentUpon>frmATR.vb</DependentUpon>
</EmbeddedResource>

View File

@@ -196,6 +196,12 @@ Public Class cDatenbankAVISO
Return Nothing
End Function
Public Shared Function CreateNewOpenConnection() As SqlConnection
Dim conn As New SqlConnection(cSqlDb.GetAVISOConnectionString())
conn.Open()
Return conn
End Function
Public Shared Function GetNewOpenConnectionWithoutError(Optional newConn As Boolean = False) As SqlConnection
Try
@@ -2473,110 +2479,223 @@ Public Class cTvTextBezeichnung
Public Property TvTextBezeichnung As String
End Class
Public Class cTvSettings
Public Property TVSettingID As Integer
Public Property StandortID As Integer
Public Property KachelWidthInPercent As Double?
Public Property KachelHeightInPercent As Double?
Public Property KachelFontSizeLkwNummer As Double?
Public Property KachelFontSizeDateTime As Double?
Public Property KachelRowGapInPercent As Double?
Public Property SeitenwechselInSek As Integer?
Public Property TextBalkenHeightInPercent As Double?
Public Property SelectedLogoValue As String
End Class
Public Class cAvisoTvNewDAL
''' <summary>
''' Holt die StandortID basierend auf dem Standortnamen.
''' </summary>
''' <param name="standort">Der Name des Standorts.</param>
''' <returns>Die zugehörige StandortID oder 0, wenn nicht gefunden.</returns>
Public Function GetStandortID(standort As String) As Integer
Dim standortID As Integer = 0
Dim sql As String = "SELECT StandortID FROM StandorteTV WHERE Standort = @Standort"
Dim sql As String = "SELECT StandortID FROM StandorteTV WHERE StandortBezeichnung = @StandortBezeichnung"
Try
Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
End If
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@Standort", standort)
Dim result As Object = cmd.ExecuteScalar()
If result IsNot Nothing AndAlso Not IsDBNull(result) Then
standortID = Convert.ToInt32(result)
End If
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@StandortBezeichnung", standort)
Dim result As Object = cmd.ExecuteScalar()
If result IsNot Nothing AndAlso Not IsDBNull(result) Then
standortID = Convert.ToInt32(result)
End If
End Using
End Using
Catch ex As SqlException
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
Throw New Exception("SQL Fehler beim Abrufen der StandortID: " & ex.Message)
Throw New Exception("SQL Fehler beim Abrufen der StandortID: " & ex.Message, ex)
Catch ex As Exception
' Allgemeine Ausnahme weiterwerfen
Throw New Exception("Allgemeiner Fehler beim Abrufen der StandortID: " & ex.Message)
Throw New Exception("Allgemeiner Fehler beim Abrufen der StandortID: " & ex.Message, ex)
End Try
Return standortID
End Function
Public Function LadenAlleTvTextBezeichnungen() As List(Of cTvTextBezeichnung)
Dim bezeichnungen As New List(Of cTvTextBezeichnung)()
''' <summary>
''' Speichert die TV-Einstellungen in der Datenbank.
''' </summary>
''' <param name="settings">Die TV-Einstellungen, die gespeichert werden sollen.</param>
Public Sub SaveTvSettings(settings As cTvSettings)
Dim sqlCheck As String = "SELECT COUNT(*) FROM AvisoTvSettings WHERE StandortID = @StandortID"
Dim sqlUpdate As String = "UPDATE AvisoTvSettings SET
KachelWidthInPercent = @KachelWidthInPercent,
KachelHeightInPercent = @KachelHeightInPercent,
KachelFontSizeLkwNummer = @KachelFontSizeLkwNummer,
KachelFontSizeDateTime = @KachelFontSizeDateTime,
KachelRowGapInPercent = @KachelRowGapInPercent,
SeitenwechselInSek = @SeitenwechselInSek,
TextBalkenHeightInPercent = @TextBalkenHeightInPercent,
Logo = @Logo
WHERE StandortID = @StandortID"
Dim sqlInsert As String = "INSERT INTO AvisoTvSettings
(StandortID, KachelWidthInPercent, KachelHeightInPercent,KachelRowGapInPercent,
KachelFontSizeLkwNummer, KachelFontSizeDateTime,
SeitenwechselInSek, TextBalkenHeightInPercent,Logo)
VALUES
(@StandortID, @KachelWidthInPercent, @KachelHeightInPercent,@KachelRowGapInPercent,
@KachelFontSizeLkwNummer, @KachelFontSizeDateTime,
@SeitenwechselInSek, @TextBalkenHeightInPercent,@Logo)"
Try
Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
End If
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
' Überprüfen, ob bereits Einstellungen für den Standort existieren
Dim recordExists As Boolean
Using cmdCheck As New SqlCommand(sqlCheck, conn)
cmdCheck.Parameters.AddWithValue("@StandortID", settings.StandortID)
recordExists = Convert.ToInt32(cmdCheck.ExecuteScalar()) > 0
End Using
Dim sql As String = "
' Wähle Update oder Insert basierend auf der Existenz
Dim sql As String = If(recordExists, sqlUpdate, sqlInsert)
Using cmdSave As New SqlCommand(sql, conn)
cmdSave.Parameters.AddWithValue("@StandortID", settings.StandortID)
cmdSave.Parameters.AddWithValue("@KachelWidthInPercent", settings.KachelWidthInPercent)
cmdSave.Parameters.AddWithValue("@KachelHeightInPercent", settings.KachelHeightInPercent)
cmdSave.Parameters.AddWithValue("@KachelRowGapInPercent", settings.KachelRowGapInPercent)
cmdSave.Parameters.AddWithValue("@KachelFontSizeLkwNummer", settings.KachelFontSizeLkwNummer)
cmdSave.Parameters.AddWithValue("@KachelFontSizeDateTime", settings.KachelFontSizeDateTime)
cmdSave.Parameters.AddWithValue("@SeitenwechselInSek", settings.SeitenwechselInSek)
cmdSave.Parameters.AddWithValue("@TextBalkenHeightInPercent", settings.TextBalkenHeightInPercent)
cmdSave.Parameters.AddWithValue("@Logo", settings.SelectedLogoValue)
cmdSave.ExecuteNonQuery()
End Using
End Using
Catch ex As SqlException
Throw New Exception("SQL Fehler beim Speichern der TV-Einstellungen: " & ex.Message, ex)
Catch ex As Exception
Throw New Exception("Allgemeiner Fehler beim Speichern der TV-Einstellungen: " & ex.Message, ex)
End Try
End Sub
''' <summary>
''' Lädt die TV-Einstellungen basierend auf der StandortID.
''' </summary>
''' <param name="standortID">Die StandortID, für die die Einstellungen geladen werden sollen.</param>
''' <returns>Eine Liste der entsprechenden TV-Einstellungen.</returns>
Public Function GetTvSettingsByStandort(standortID As Integer) As List(Of cTvSettings)
Dim SettingsList As New List(Of cTvSettings)()
Dim sql As String = "SELECT * FROM AvisoTvSettings WHERE StandortID = @StandortID"
Try
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@StandortID", standortID)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim settings As New cTvSettings() With {
.TVSettingID = Convert.ToInt32(dr("TvSettingID")),
.StandortID = Convert.ToInt32(dr("StandortID")),
.KachelWidthInPercent = If(IsDBNull(dr("KachelWidthInPercent")), 0, Convert.ToDouble(dr("KachelWidthInPercent"))),
.KachelHeightInPercent = If(IsDBNull(dr("KachelHeightInPercent")), 0, Convert.ToDouble(dr("KachelHeightInPercent"))),
.KachelRowGapInPercent = If(IsDBNull(dr("KachelRowGapInPercent")), 0, Convert.ToDouble(dr("KachelRowGapInPercent"))),
.KachelFontSizeLkwNummer = If(IsDBNull(dr("KachelFontSizeLkwNummer")), 0, Convert.ToDouble(dr("KachelFontSizeLkwNummer"))),
.KachelFontSizeDateTime = If(IsDBNull(dr("KachelFontSizeDateTime")), 0, Convert.ToDouble(dr("KachelFontSizeDateTime"))),
.SeitenwechselInSek = If(IsDBNull(dr("SeitenwechselInSek")), 0, Convert.ToInt32(dr("SeitenwechselInSek"))),
.TextBalkenHeightInPercent = If(IsDBNull(dr("TextBalkenHeightInPercent")), 0, Convert.ToDouble(dr("TextBalkenHeightInPercent"))),
.SelectedLogoValue = If(IsDBNull(dr("Logo")), "", Convert.ToString(dr("Logo")))
}
SettingsList.Add(settings)
End While
End Using
End Using
End Using
Catch ex As SqlException
Throw New Exception("SQL Fehler beim Laden der TV-Einstellungen: " & ex.Message, ex)
Catch ex As Exception
Throw New Exception("Allgemeiner Fehler beim Laden der TV-Einstellungen: " & ex.Message, ex)
End Try
Return SettingsList
End Function
''' <summary>
''' Lädt alle TV-Textbezeichnungen aus der Datenbank.
''' </summary>
''' <returns>Eine Liste aller TV-Textbezeichnungen.</returns>
Public Function LadenAlleTvTextBezeichnungen() As List(Of cTvTextBezeichnung)
Dim bezeichnungen As New List(Of cTvTextBezeichnung)()
Dim sql As String = "
SELECT TvTextBezeichnungID, TvTextBezeichnung
FROM AvisoTvNew
ORDER BY TvTextBezeichnung
"
Using cmd As New SqlCommand(sql, conn)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim bezeichnung As New cTvTextBezeichnung() With {
.TvTextBezeichnungID = Convert.ToInt32(dr("TvTextBezeichnungID")),
.TvTextBezeichnung = Convert.ToString(dr("TvTextBezeichnung"))
}
bezeichnungen.Add(bezeichnung)
End While
Try
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim bezeichnung As New cTvTextBezeichnung() With {
.TvTextBezeichnungID = Convert.ToInt32(dr("TvTextBezeichnungID")),
.TvTextBezeichnung = Convert.ToString(dr("TvTextBezeichnung"))
}
bezeichnungen.Add(bezeichnung)
End While
End Using
End Using
End Using
Catch ex As SqlException
Throw New Exception("SQL Fehler beim Laden der TvTextBezeichnungen: " & ex.Message)
Throw New Exception("SQL Fehler beim Laden der TvTextBezeichnungen: " & ex.Message, ex)
Catch ex As Exception
Throw New Exception("Allgemeiner Fehler beim Laden der TvTextBezeichnungen: " & ex.Message)
Throw New Exception("Allgemeiner Fehler beim Laden der TvTextBezeichnungen: " & ex.Message, ex)
End Try
Return bezeichnungen
End Function
' Methode zum Überprüfen, ob eine TvTextBezeichnung bereits für einen Standort existiert
''' <summary>
''' Überprüft, ob eine TV-Textbezeichnung bereits vorhanden ist.
''' </summary>
''' <param name="tvTextBezeichnung">Die TV-Textbezeichnung, die überprüft werden soll.</param>
''' <returns>True, wenn die Bezeichnung vorhanden ist; andernfalls False.</returns>
Public Function IstTvTextBezeichnungVorhanden(tvTextBezeichnung As String) As Boolean
Dim vorhanden As Boolean = False
Dim sql As String = "SELECT COUNT(*)
FROM AvisoTvNew
WHERE TvTextBezeichnung = @TvTextBezeichnung"
Dim sql As String = "SELECT COUNT(*) FROM AvisoTvNew WHERE TvTextBezeichnung = @TvTextBezeichnung"
Try
Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
End If
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@TvTextBezeichnung", tvTextBezeichnung)
Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())
If count > 0 Then
vorhanden = True
End If
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@TvTextBezeichnung", tvTextBezeichnung)
Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())
If count > 0 Then
vorhanden = True
End If
End Using
End Using
Catch ex As SqlException
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
Throw New Exception("SQL Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message)
Throw New Exception("SQL Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message, ex)
Catch ex As Exception
' Allgemeine Ausnahme weiterwerfen
Throw New Exception("Allgemeiner Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message)
Throw New Exception("Allgemeiner Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message, ex)
End Try
Return vorhanden
End Function
' Methode zum Lesen von AvisoTvNew-Einträgen
Public Sub LesenAvisoTvNew(tvid As Integer, bezeichnung As String, standort As String, ByRef liste As List(Of cAvisoTvNew))
''' <summary>
''' Liest AvisoTvNew-Einträge basierend auf den angegebenen Kriterien.
''' </summary>
''' <param name="tvid">Die TV-TextbezeichnungID.</param>
''' <param name="bezeichnung">Die Bezeichnung.</param>
''' <param name="standort">Der Standort.</param>
''' <param name="liste">Die Liste, in die die Ergebnisse eingefügt werden.</param>
Public Sub LesenAvisoTvNew(tvid As Integer, bezeichnung As String, StandortBezeichnung As String, ByRef liste As List(Of cAvisoTvNew))
Dim sql As String = "SELECT
stv.TvTextBezeichnungID,
stv.StandortID,
@@ -2613,69 +2732,67 @@ Public Class cAvisoTvNewDAL
sql &= " AND a.TVTextBezeichnung LIKE @TVTextBezeichnung"
End If
If Not String.IsNullOrWhiteSpace(standort) Then
sql &= " AND s.Standort = @Standort"
If Not String.IsNullOrWhiteSpace(StandortBezeichnung) Then
sql &= " AND s.Standortbezeichnung = @StandortBezeichnung"
End If
Try
Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
End If
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
If tvid <> 0 Then
cmd.Parameters.AddWithValue("@TvTextBezeichnungID", tvid)
End If
Dim cmd As New SqlCommand(sql, conn)
If tvid <> 0 Then
cmd.Parameters.AddWithValue("@TvTextBezeichnungID", tvid)
End If
If Not String.IsNullOrWhiteSpace(bezeichnung) Then
cmd.Parameters.AddWithValue("@TVTextBezeichnung", "%" & bezeichnung & "%")
End If
If Not String.IsNullOrWhiteSpace(bezeichnung) Then
cmd.Parameters.AddWithValue("@TVTextBezeichnung", "%" & bezeichnung & "%")
End If
If Not String.IsNullOrWhiteSpace(StandortBezeichnung) Then
cmd.Parameters.AddWithValue("@StandortBezeichnung", StandortBezeichnung)
End If
If Not String.IsNullOrWhiteSpace(standort) Then
cmd.Parameters.AddWithValue("@Standort", standort)
End If
Dim dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim aviso As New cAvisoTvNew() With {
.TvTextBezeichnungID = Convert.ToInt32(dr("TvTextBezeichnungID")),
.StandortID = Convert.ToInt32(dr("StandortID")),
.TvTextBezeichnung = Convert.ToString(dr("TVTextBezeichnung")),
.Standort = Convert.ToString(dr("Standort")),
.Position = If(IsDBNull(dr("Position")), Nothing, Convert.ToString(dr("Position"))),
.FixeZeile1RTF = If(IsDBNull(dr("FixeZeile1RTF")), Nothing, Convert.ToString(dr("FixeZeile1RTF"))),
.FixeZeile2RTF = If(IsDBNull(dr("FixeZeile2RTF")), Nothing, Convert.ToString(dr("FixeZeile2RTF"))),
.FixeZeile3RTF = If(IsDBNull(dr("FixeZeile3RTF")), Nothing, Convert.ToString(dr("FixeZeile3RTF"))),
.Art = If(IsDBNull(dr("Art")), Nothing, Convert.ToString(dr("Art"))),
.StartDate = If(IsDBNull(dr("StartDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("StartDate"))),
.EndDate = If(IsDBNull(dr("EndDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("EndDate"))),
.StartTime = If(IsDBNull(dr("StartTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("StartTime")).TimeOfDay),
.EndTime = If(IsDBNull(dr("EndTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("EndTime")).TimeOfDay),
.IsRecurring = If(IsDBNull(dr("IsRecurring")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsRecurring"))),
.IsMonday = If(IsDBNull(dr("IsMonday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsMonday"))),
.IsTuesday = If(IsDBNull(dr("IsTuesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsTuesday"))),
.IsWednesday = If(IsDBNull(dr("IsWednesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsWednesday"))),
.IsThursday = If(IsDBNull(dr("IsThursday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsThursday"))),
.IsFriday = If(IsDBNull(dr("IsFriday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsFriday"))),
.IsSaturday = If(IsDBNull(dr("IsSaturday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSaturday"))),
.IsSunday = If(IsDBNull(dr("IsSunday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSunday"))),
.IsActive = Convert.ToBoolean(dr("IsActive"))
}
liste.Add(aviso)
End While
dr.Close()
cmd.Dispose()
conn.Close()
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim aviso As New cAvisoTvNew() With {
.TvTextBezeichnungID = Convert.ToInt32(dr("TvTextBezeichnungID")),
.StandortID = Convert.ToInt32(dr("StandortID")),
.TvTextBezeichnung = Convert.ToString(dr("TVTextBezeichnung")),
.Standort = Convert.ToString(dr("Standort")),
.Position = If(IsDBNull(dr("Position")), Nothing, Convert.ToString(dr("Position"))),
.FixeZeile1RTF = If(IsDBNull(dr("FixeZeile1RTF")), Nothing, Convert.ToString(dr("FixeZeile1RTF"))),
.FixeZeile2RTF = If(IsDBNull(dr("FixeZeile2RTF")), Nothing, Convert.ToString(dr("FixeZeile2RTF"))),
.FixeZeile3RTF = If(IsDBNull(dr("FixeZeile3RTF")), Nothing, Convert.ToString(dr("FixeZeile3RTF"))),
.Art = If(IsDBNull(dr("Art")), Nothing, Convert.ToString(dr("Art"))),
.StartDate = If(IsDBNull(dr("StartDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("StartDate"))),
.EndDate = If(IsDBNull(dr("EndDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("EndDate"))),
.StartTime = If(IsDBNull(dr("StartTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("StartTime")).TimeOfDay),
.EndTime = If(IsDBNull(dr("EndTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("EndTime")).TimeOfDay),
.IsRecurring = If(IsDBNull(dr("IsRecurring")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsRecurring"))),
.IsMonday = If(IsDBNull(dr("IsMonday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsMonday"))),
.IsTuesday = If(IsDBNull(dr("IsTuesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsTuesday"))),
.IsWednesday = If(IsDBNull(dr("IsWednesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsWednesday"))),
.IsThursday = If(IsDBNull(dr("IsThursday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsThursday"))),
.IsFriday = If(IsDBNull(dr("IsFriday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsFriday"))),
.IsSaturday = If(IsDBNull(dr("IsSaturday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSaturday"))),
.IsSunday = If(IsDBNull(dr("IsSunday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSunday"))),
.IsActive = Convert.ToBoolean(dr("IsActive"))
}
liste.Add(aviso)
End While
End Using
End Using
End Using
Catch ex As SqlException
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
Throw New Exception("SQL Fehler beim Lesen der Daten: " & ex.Message)
Throw New Exception("SQL Fehler beim Lesen der Daten: " & ex.Message, ex)
Catch ex As Exception
' Allgemeine Ausnahme weiterwerfen
Throw New Exception("Allgemeiner Fehler beim Lesen der Daten: " & ex.Message)
Throw New Exception("Allgemeiner Fehler beim Lesen der Daten: " & ex.Message, ex)
End Try
End Sub
''' <summary>
''' Liest alle AvisoTvNew-Einträge aus der Datenbank.
''' </summary>
''' <param name="liste">Die Liste, in die die Ergebnisse eingefügt werden.</param>
Public Sub LesenAlleAvisoTvNew(ByRef liste As List(Of cAvisoTvNew))
' Basis-SQL-Abfrage ohne Filter
Dim sql As String = "SELECT
@@ -2700,288 +2817,251 @@ Public Class cAvisoTvNewDAL
a.IsActive
FROM AvisoTvNew a"
Dim conn As SqlConnection = Nothing
Dim cmd As SqlCommand = Nothing
Dim dr As SqlDataReader = Nothing
Try
conn = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
End If
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
' Keine Parameter erforderlich, da keine Filter
cmd = New SqlCommand(sql, conn)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim aviso As New cAvisoTvNew() With {
.TvTextBezeichnungID = If(IsDBNull(dr("TvTextBezeichnungID")), 0, Convert.ToInt32(dr("TvTextBezeichnungID"))),
.TvTextBezeichnung = If(IsDBNull(dr("TvTextBezeichnung")), String.Empty, dr("TvTextBezeichnung").ToString()),
.FixeZeile1RTF = If(IsDBNull(dr("FixeZeile1RTF")), Nothing, dr("FixeZeile1RTF").ToString()),
.FixeZeile2RTF = If(IsDBNull(dr("FixeZeile2RTF")), Nothing, dr("FixeZeile2RTF").ToString()),
.FixeZeile3RTF = If(IsDBNull(dr("FixeZeile3RTF")), Nothing, dr("FixeZeile3RTF").ToString()),
.Art = If(IsDBNull(dr("Art")), Nothing, dr("Art").ToString()),
.StartDate = If(IsDBNull(dr("StartDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("StartDate"))),
.EndDate = If(IsDBNull(dr("EndDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("EndDate"))),
.StartTime = If(IsDBNull(dr("StartTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("StartTime")).TimeOfDay),
.EndTime = If(IsDBNull(dr("EndTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("EndTime")).TimeOfDay),
.IsRecurring = If(IsDBNull(dr("IsRecurring")), False, Convert.ToBoolean(dr("IsRecurring"))),
.IsMonday = If(IsDBNull(dr("IsMonday")), False, Convert.ToBoolean(dr("IsMonday"))),
.IsTuesday = If(IsDBNull(dr("IsTuesday")), False, Convert.ToBoolean(dr("IsTuesday"))),
.IsWednesday = If(IsDBNull(dr("IsWednesday")), False, Convert.ToBoolean(dr("IsWednesday"))),
.IsThursday = If(IsDBNull(dr("IsThursday")), False, Convert.ToBoolean(dr("IsThursday"))),
.IsFriday = If(IsDBNull(dr("IsFriday")), False, Convert.ToBoolean(dr("IsFriday"))),
.IsSaturday = If(IsDBNull(dr("IsSaturday")), False, Convert.ToBoolean(dr("IsSaturday"))),
.IsSunday = If(IsDBNull(dr("IsSunday")), False, Convert.ToBoolean(dr("IsSunday"))),
.IsActive = If(IsDBNull(dr("IsActive")), False, Convert.ToBoolean(dr("IsActive")))
}
' Keine Parameter erforderlich, da keine Filter
' Daten lesen und Objekte erstellen
dr = cmd.ExecuteReader()
While dr.Read()
Dim aviso As New cAvisoTvNew() With {
.TvTextBezeichnungID = If(IsDBNull(dr("TvTextBezeichnungID")), 0, Convert.ToInt32(dr("TvTextBezeichnungID"))),
.TvTextBezeichnung = If(IsDBNull(dr("TvTextBezeichnung")), String.Empty, dr("TvTextBezeichnung").ToString()),
.FixeZeile1RTF = If(IsDBNull(dr("FixeZeile1RTF")), Nothing, dr("FixeZeile1RTF").ToString()),
.FixeZeile2RTF = If(IsDBNull(dr("FixeZeile2RTF")), Nothing, dr("FixeZeile2RTF").ToString()),
.FixeZeile3RTF = If(IsDBNull(dr("FixeZeile3RTF")), Nothing, dr("FixeZeile3RTF").ToString()),
.Art = If(IsDBNull(dr("Art")), Nothing, dr("Art").ToString()),
.StartDate = If(IsDBNull(dr("StartDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("StartDate"))),
.EndDate = If(IsDBNull(dr("EndDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("EndDate"))),
.StartTime = If(IsDBNull(dr("StartTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("StartTime")).TimeOfDay),
.EndTime = If(IsDBNull(dr("EndTime")), CType(Nothing, TimeSpan?), Convert.ToDateTime(dr("EndTime")).TimeOfDay),
.IsRecurring = If(IsDBNull(dr("IsRecurring")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsRecurring"))),
.IsMonday = If(IsDBNull(dr("IsMonday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsMonday"))),
.IsTuesday = If(IsDBNull(dr("IsTuesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsTuesday"))),
.IsWednesday = If(IsDBNull(dr("IsWednesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsWednesday"))),
.IsThursday = If(IsDBNull(dr("IsThursday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsThursday"))),
.IsFriday = If(IsDBNull(dr("IsFriday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsFriday"))),
.IsSaturday = If(IsDBNull(dr("IsSaturday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSaturday"))),
.IsSunday = If(IsDBNull(dr("IsSunday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSunday"))),
.IsActive = If(IsDBNull(dr("IsActive")), False, Convert.ToBoolean(dr("IsActive")))
}
liste.Add(aviso)
End While
dr.Close()
cmd.Dispose()
conn.Close()
liste.Add(aviso)
End While
End Using
End Using
End Using
Catch ex As SqlException
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
Throw New Exception($"SQL Fehler beim Lesen der Daten: {ex.Message}")
Throw New Exception($"SQL Fehler beim Lesen der Daten: {ex.Message}", ex)
Catch ex As Exception
' Allgemeine Ausnahme weiterwerfen
Throw New Exception($"Allgemeiner Fehler beim Lesen der Daten: {ex.Message}")
Throw New Exception($"Allgemeiner Fehler beim Lesen der Daten: {ex.Message}", ex)
End Try
End Sub
' Methode zum Speichern von AvisoTvNew-Einträgen
''' <summary>
''' Speichert einen AvisoTvNew-Eintrag in der Datenbank.
''' </summary>
''' <param name="aviso">Der AvisoTvNew-Eintrag, der gespeichert werden soll.</param>
Public Sub SpeichernAvisoTvNew(aviso As cAvisoTvNew)
Dim conn As SqlConnection = Nothing
Dim cmd As SqlCommand = Nothing
Dim cmdLink As SqlCommand = Nothing
Dim transaction As SqlTransaction = Nothing
Dim sqlInsert As String
Dim sqlUpdate As String
Try
conn = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
End If
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using transaction As SqlTransaction = conn.BeginTransaction()
Try
If aviso.TvTextBezeichnungID = 0 Then
' Neuanlage
sqlInsert = "INSERT INTO AvisoTvNew (
TvTextBezeichnung,
FixeZeile1RTF,
FixeZeile1HTML,
FixeZeile2RTF,
FixeZeile2HTML,
FixeZeile3RTF,
FixeZeile3HTML,
StartDate,
EndDate,
StartTime,
EndTime,
IsRecurring,
IsMonday,
IsTuesday,
IsWednesday,
IsThursday,
IsFriday,
IsSaturday,
IsSunday,
IsActive
) VALUES (
@TvTextBezeichnung,
@FixeZeile1RTF,
@FixeZeile1HTML,
@FixeZeile2RTF,
@FixeZeile2HTML,
@FixeZeile3RTF,
@FixeZeile3HTML,
@StartDate,
@EndDate,
@StartTime,
@EndTime,
@IsRecurring,
@IsMonday,
@IsTuesday,
@IsWednesday,
@IsThursday,
@IsFriday,
@IsSaturday,
@IsSunday,
@IsActive
);
SELECT CAST(scope_identity() AS int);"
' Beginnen einer Transaktion, um Konsistenz zu gewährleisten
transaction = conn.BeginTransaction()
Using cmd As New SqlCommand(sqlInsert, conn, transaction)
cmd.Parameters.AddWithValue("@TvTextBezeichnung", aviso.TvTextBezeichnung)
cmd.Parameters.AddWithValue("@FixeZeile1RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1RTF), CType(Nothing, String), aviso.FixeZeile1RTF))
cmd.Parameters.AddWithValue("@FixeZeile1HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1HTML), CType(Nothing, String), aviso.FixeZeile1HTML))
cmd.Parameters.AddWithValue("@FixeZeile2RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2RTF), DBNull.Value, aviso.FixeZeile2RTF))
cmd.Parameters.AddWithValue("@FixeZeile2HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2HTML), DBNull.Value, aviso.FixeZeile2HTML))
cmd.Parameters.AddWithValue("@FixeZeile3RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3RTF), DBNull.Value, aviso.FixeZeile3RTF))
cmd.Parameters.AddWithValue("@FixeZeile3HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3HTML), DBNull.Value, aviso.FixeZeile3HTML))
cmd.Parameters.AddWithValue("@StartDate", If(aviso.StartDate.HasValue, CType(aviso.StartDate.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@EndDate", If(aviso.EndDate.HasValue, CType(aviso.EndDate.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@StartTime", If(aviso.StartTime.HasValue, CType(aviso.StartTime.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@EndTime", If(aviso.EndTime.HasValue, CType(aviso.EndTime.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@IsRecurring", aviso.IsRecurring)
cmd.Parameters.AddWithValue("@IsMonday", aviso.IsMonday)
cmd.Parameters.AddWithValue("@IsTuesday", aviso.IsTuesday)
cmd.Parameters.AddWithValue("@IsWednesday", aviso.IsWednesday)
cmd.Parameters.AddWithValue("@IsThursday", aviso.IsThursday)
cmd.Parameters.AddWithValue("@IsFriday", aviso.IsFriday)
cmd.Parameters.AddWithValue("@IsSaturday", aviso.IsSaturday)
cmd.Parameters.AddWithValue("@IsSunday", aviso.IsSunday)
cmd.Parameters.AddWithValue("@IsActive", aviso.IsActive)
Dim sql As String
Dim result As Object = cmd.ExecuteScalar()
If result Is Nothing OrElse IsDBNull(result) Then
Throw New Exception("Das INSERT hat keine ID zurückgegeben.")
End If
aviso.TvTextBezeichnungID = Convert.ToInt32(result)
End Using
Else
' Aktualisierung
sqlUpdate = "UPDATE AvisoTvNew SET
FixeZeile1RTF = @FixeZeile1RTF,
FixeZeile1HTML = @FixeZeile1HTML,
FixeZeile2RTF = @FixeZeile2RTF,
FixeZeile2HTML = @FixeZeile2HTML,
FixeZeile3RTF = @FixeZeile3RTF,
FixeZeile3HTML = @FixeZeile3HTML,
StartDate = @StartDate,
EndDate = @EndDate,
StartTime = @StartTime,
EndTime = @EndTime,
IsRecurring = @IsRecurring,
IsMonday = @IsMonday,
IsTuesday = @IsTuesday,
IsWednesday = @IsWednesday,
IsThursday = @IsThursday,
IsFriday = @IsFriday,
IsSaturday = @IsSaturday,
IsSunday = @IsSunday,
IsActive = @IsActive
WHERE TvTextBezeichnungID = @TvTextBezeichnungID"
If aviso.TvTextBezeichnungID = 0 Then
' Neuanlage
sql = "INSERT INTO AvisoTvNew (
TvTextBezeichnung,
FixeZeile1RTF,
FixeZeile1HTML,
FixeZeile2RTF,
FixeZeile2HTML,
FixeZeile3RTF,
FixeZeile3HTML,
StartDate,
EndDate,
StartTime,
EndTime,
IsRecurring,
IsMonday,
IsTuesday,
IsWednesday,
IsThursday,
IsFriday,
IsSaturday,
IsSunday,
IsActive
) VALUES (
@TvTextBezeichnung,
@FixeZeile1RTF,
@FixeZeile1HTML,
@FixeZeile2RTF,
@FixeZeile2HTML,
@FixeZeile3RTF,
@FixeZeile3HTML,
@StartDate,
@EndDate,
@StartTime,
@EndTime,
@IsRecurring,
@IsMonday,
@IsTuesday,
@IsWednesday,
@IsThursday,
@IsFriday,
@IsSaturday,
@IsSunday,
@IsActive
);
SELECT CAST(scope_identity() AS int);"
Else
' Aktualisierung
sql = "UPDATE AvisoTvNew SET
FixeZeile1RTF = @FixeZeile1RTF,
FixeZeile1HTML = @FixeZeile1HTML,
FixeZeile2RTF = @FixeZeile2RTF,
FixeZeile2HTML = @FixeZeile2HTML,
FixeZeile3RTF = @FixeZeile3RTF,
FixeZeile3HTML = @FixeZeile3HTML,
StartDate = @StartDate,
EndDate = @EndDate,
StartTime = @StartTime,
EndTime = @EndTime,
IsRecurring = @IsRecurring,
IsMonday = @IsMonday,
IsTuesday = @IsTuesday,
IsWednesday = @IsWednesday,
IsThursday = @IsThursday,
IsFriday = @IsFriday,
IsSaturday = @IsSaturday,
IsSunday = @IsSunday,
IsActive = @IsActive
WHERE TvTextBezeichnungID = @TvTextBezeichnungID"
End If
Using cmd As New SqlCommand(sqlUpdate, conn, transaction)
cmd.Parameters.AddWithValue("@FixeZeile1RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1RTF), CType(Nothing, String), aviso.FixeZeile1RTF))
cmd.Parameters.AddWithValue("@FixeZeile1HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1HTML), CType(Nothing, String), aviso.FixeZeile1HTML))
cmd.Parameters.AddWithValue("@FixeZeile2RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2RTF), DBNull.Value, aviso.FixeZeile2RTF))
cmd.Parameters.AddWithValue("@FixeZeile2HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2HTML), DBNull.Value, aviso.FixeZeile2HTML))
cmd.Parameters.AddWithValue("@FixeZeile3RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3RTF), DBNull.Value, aviso.FixeZeile3RTF))
cmd.Parameters.AddWithValue("@FixeZeile3HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3HTML), DBNull.Value, aviso.FixeZeile3HTML))
cmd.Parameters.AddWithValue("@StartDate", If(aviso.StartDate.HasValue, CType(aviso.StartDate.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@EndDate", If(aviso.EndDate.HasValue, CType(aviso.EndDate.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@StartTime", If(aviso.StartTime.HasValue, CType(aviso.StartTime.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@EndTime", If(aviso.EndTime.HasValue, CType(aviso.EndTime.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@IsRecurring", aviso.IsRecurring)
cmd.Parameters.AddWithValue("@IsMonday", aviso.IsMonday)
cmd.Parameters.AddWithValue("@IsTuesday", aviso.IsTuesday)
cmd.Parameters.AddWithValue("@IsWednesday", aviso.IsWednesday)
cmd.Parameters.AddWithValue("@IsThursday", aviso.IsThursday)
cmd.Parameters.AddWithValue("@IsFriday", aviso.IsFriday)
cmd.Parameters.AddWithValue("@IsSaturday", aviso.IsSaturday)
cmd.Parameters.AddWithValue("@IsSunday", aviso.IsSunday)
cmd.Parameters.AddWithValue("@IsActive", aviso.IsActive)
cmd.Parameters.AddWithValue("@TvTextBezeichnungID", aviso.TvTextBezeichnungID)
cmd = New SqlCommand(sql, conn, transaction)
cmd.ExecuteNonQuery()
End Using
End If
cmd.Parameters.AddWithValue("@FixeZeile1RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1RTF), CType(Nothing, String), aviso.FixeZeile1RTF))
cmd.Parameters.AddWithValue("@FixeZeile1HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1HTML), CType(Nothing, String), aviso.FixeZeile1HTML))
cmd.Parameters.AddWithValue("@FixeZeile2RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2RTF), DBNull.Value, aviso.FixeZeile2RTF))
cmd.Parameters.AddWithValue("@FixeZeile2HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2HTML), DBNull.Value, aviso.FixeZeile2HTML))
cmd.Parameters.AddWithValue("@FixeZeile3RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3RTF), DBNull.Value, aviso.FixeZeile3RTF))
cmd.Parameters.AddWithValue("@FixeZeile3HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3HTML), DBNull.Value, aviso.FixeZeile3HTML))
cmd.Parameters.AddWithValue("@StartDate", If(aviso.StartDate.HasValue, CType(aviso.StartDate.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@EndDate", If(aviso.EndDate.HasValue, CType(aviso.EndDate.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@StartTime", If(aviso.StartTime.HasValue, CType(aviso.StartTime.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@EndTime", If(aviso.EndTime.HasValue, CType(aviso.EndTime.Value, Object), DBNull.Value))
cmd.Parameters.AddWithValue("@IsRecurring", aviso.IsRecurring)
cmd.Parameters.AddWithValue("@IsMonday", aviso.IsMonday)
cmd.Parameters.AddWithValue("@IsTuesday", aviso.IsTuesday)
cmd.Parameters.AddWithValue("@IsWednesday", aviso.IsWednesday)
cmd.Parameters.AddWithValue("@IsThursday", aviso.IsThursday)
cmd.Parameters.AddWithValue("@IsFriday", aviso.IsFriday)
cmd.Parameters.AddWithValue("@IsSaturday", aviso.IsSaturday)
cmd.Parameters.AddWithValue("@IsSunday", aviso.IsSunday)
cmd.Parameters.AddWithValue("@IsActive", aviso.IsActive)
' Einfügen oder Aktualisieren in die StandortTvBezeichnung-Tabelle
Dim sqlLink As String = "
IF EXISTS (
SELECT 1 FROM StandortTvBezeichnung
WHERE StandortID = @StandortID AND TvTextBezeichnungID = @TvTextBezeichnungID
)
BEGIN
UPDATE StandortTvBezeichnung
SET Position = @Position
WHERE StandortID = @StandortID AND TvTextBezeichnungID = @TvTextBezeichnungID
END
ELSE
BEGIN
INSERT INTO StandortTvBezeichnung (StandortID, TvTextBezeichnungID, Position)
VALUES (@StandortID, @TvTextBezeichnungID, @Position)
END
"
If aviso.TvTextBezeichnungID <> 0 Then
cmd.Parameters.AddWithValue("@TvTextBezeichnungID", aviso.TvTextBezeichnungID)
End If
Using cmdLink As New SqlCommand(sqlLink, conn, transaction)
cmdLink.Parameters.AddWithValue("@StandortID", aviso.StandortID)
cmdLink.Parameters.AddWithValue("@TvTextBezeichnungID", aviso.TvTextBezeichnungID)
cmdLink.Parameters.AddWithValue("@Position", If(String.IsNullOrEmpty(aviso.Position), DBNull.Value, aviso.Position))
If aviso.TvTextBezeichnungID = 0 Then
cmd.Parameters.AddWithValue("@TvTextBezeichnung", aviso.TvTextBezeichnung)
' Neuanlage: Führen Sie das INSERT aus und holen Sie die generierte ID
Dim result As Object = cmd.ExecuteScalar()
If result Is Nothing OrElse IsDBNull(result) Then
Throw New Exception("Das INSERT hat keine ID zurückgegeben.")
End If
aviso.TvTextBezeichnungID = Convert.ToInt32(result)
Else
' Aktualisierung: Führen Sie das UPDATE aus
cmd.ExecuteNonQuery()
End If
' Einfügen oder Aktualisieren in die StandortTvBezeichnung-Tabelle
Dim sqlLink As String = "
IF EXISTS (
SELECT 1 FROM StandortTvBezeichnung
WHERE StandortID = @StandortID AND TvTextBezeichnungID = @TvTextBezeichnungID
)
BEGIN
UPDATE StandortTvBezeichnung
SET Position = @Position
WHERE StandortID = @StandortID AND TvTextBezeichnungID = @TvTextBezeichnungID
END
ELSE
BEGIN
INSERT INTO StandortTvBezeichnung (StandortID, TvTextBezeichnungID, Position)
VALUES (@StandortID, @TvTextBezeichnungID, @Position)
END
"
cmdLink = New SqlCommand(sqlLink, conn, transaction)
cmdLink.Parameters.AddWithValue("@StandortID", aviso.StandortID)
cmdLink.Parameters.AddWithValue("@TvTextBezeichnungID", aviso.TvTextBezeichnungID)
cmdLink.Parameters.AddWithValue("@Position", If(String.IsNullOrEmpty(aviso.Position), DBNull.Value, aviso.Position))
cmdLink.ExecuteNonQuery()
' Transaktion committen, wenn alle Operationen erfolgreich waren
transaction.Commit()
cmdLink.ExecuteNonQuery()
End Using
' Transaktion committen, wenn alle Operationen erfolgreich waren
transaction.Commit()
Catch ex As Exception
' Fehlerbehandlung: Transaktion zurückrollen und Fehler weiterwerfen
Try
transaction.Rollback()
Catch rollbackEx As Exception
Throw New Exception("Fehler beim Zurückrollen der Transaktion: " & rollbackEx.Message, rollbackEx)
End Try
Throw ' Weiterwerfen der ursprünglichen Ausnahme
End Try
End Using
End Using
Catch ex As SqlException
' Fehlerbehandlung: Transaktion zurückrollen und Fehler weiterwerfen
If transaction IsNot Nothing Then
Try
transaction.Rollback()
Catch rollbackEx As Exception
Throw New Exception("Fehler beim Zurückrollen der Transaktion: " & rollbackEx.Message)
End Try
End If
Throw New Exception("SQL Fehler beim Speichern des Eintrags: " & ex.Message)
Throw New Exception("SQL Fehler beim Speichern des Eintrags: " & ex.Message, ex)
Catch ex As Exception
' Allgemeine Fehlerbehandlung: Transaktion zurückrollen und Fehler weiterwerfen
If transaction IsNot Nothing Then
Try
transaction.Rollback()
Catch rollbackEx As Exception
Throw New Exception("Fehler beim Zurückrollen der Transaktion: " & rollbackEx.Message)
End Try
End If
Throw New Exception("Allgemeiner Fehler beim Speichern des Eintrags: " & ex.Message)
Finally
' Ressourcen manuell freigeben
If cmdLink IsNot Nothing Then
cmdLink.Dispose()
cmdLink = Nothing
End If
If cmd IsNot Nothing Then
cmd.Dispose()
cmd = Nothing
End If
If transaction IsNot Nothing Then
transaction.Dispose()
transaction = Nothing
End If
If conn IsNot Nothing Then
conn.Close()
conn = Nothing
End If
Throw New Exception("Allgemeiner Fehler beim Speichern des Eintrags: " & ex.Message, ex)
End Try
End Sub
' Methode zum Setzen eines Eintrags auf inaktiv
''' <summary>
''' Setzt einen AvisoTvNew-Eintrag auf inaktiv.
''' </summary>
''' <param name="hID">Die ID des Eintrags, der inaktiv gesetzt werden soll.</param>
Public Sub SetzeAufInaktiv(ByVal hID As Integer)
Dim sql As String = "UPDATE AvisoTvNew SET IsActive = 0 WHERE TVID = @TVID"
Try
Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
End If
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@TVID", hID)
Dim rowsAffected As Integer = cmd.ExecuteNonQuery()
If rowsAffected = 0 Then
Throw New Exception("Der Datensatz konnte nicht auf inaktiv gesetzt werden. Möglicherweise existiert er nicht mehr.")
End If
Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@TVID", hID)
Dim rowsAffected As Integer = cmd.ExecuteNonQuery()
If rowsAffected = 0 Then
Throw New Exception("Der Datensatz konnte nicht auf inaktiv gesetzt werden. Möglicherweise existiert er nicht mehr.")
End If
End Using
End Using
Catch ex As SqlException
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
Throw New Exception("AvisoTvNew-Eintrag kann nicht auf inaktiv gesetzt werden! " & vbCrLf & ex.Message)
Throw New Exception("AvisoTvNew-Eintrag kann nicht auf inaktiv gesetzt werden! " & vbCrLf & ex.Message, ex)
Catch ex As Exception
' Allgemeine Ausnahme weiterwerfen
Throw New Exception("Fehler beim Setzen auf inaktiv: " & ex.Message)
Throw New Exception("Fehler beim Setzen auf inaktiv: " & ex.Message, ex)
End Try
End Sub
@@ -2990,6 +3070,7 @@ End Class
Public Class cAvisoTV
Property TVID As Long = 0
Property FixeZeile1 As String