Verag TV App
This commit is contained in:
@@ -6,6 +6,7 @@ Imports System.Data.SqlClient
|
||||
Imports System.Globalization
|
||||
Imports System.Reflection
|
||||
Imports System.Web.UI.WebControls.WebParts
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Public Class cSqlDb
|
||||
|
||||
@@ -2437,6 +2438,568 @@ Public Class cVermerkeDAL
|
||||
End Class
|
||||
|
||||
|
||||
Public Class cAvisoTvNew
|
||||
Public Property TVID As Integer
|
||||
Public Property TvTextBezeichnungID As Integer
|
||||
Public Property TvTextBezeichnung As String
|
||||
Public Property FixeZeile1RTF As String
|
||||
Public Property FixeZeile1HTML As String
|
||||
Public Property FixeZeile2 As String
|
||||
Public Property FixeZeile3 As String
|
||||
Public Property StandortID As Integer
|
||||
Public Property Standort As String
|
||||
Public Property Art As String
|
||||
Public Property StartDate As Date?
|
||||
Public Property EndDate As Date?
|
||||
Public Property StartTime As TimeSpan?
|
||||
Public Property EndTime As TimeSpan?
|
||||
Public Property IsRecurring As Boolean?
|
||||
Public Property IsMonday As Boolean?
|
||||
Public Property IsTuesday As Boolean?
|
||||
Public Property IsWednesday As Boolean?
|
||||
Public Property IsThursday As Boolean?
|
||||
Public Property IsFriday As Boolean?
|
||||
Public Property IsSaturday As Boolean?
|
||||
Public Property IsSunday As Boolean?
|
||||
Public Property IsActive As Boolean
|
||||
Public Property Position As String
|
||||
|
||||
Public Property FontFamily As String = "Microsoft Sans Serif"
|
||||
Public Property FontSize As Single = 12.0F
|
||||
Public Property FontStyle As String = "Regular"
|
||||
Public Property TextColor As String = "Black"
|
||||
Public Property BackColor As String = "White"
|
||||
Public Property TextAlignment As String = "Left"
|
||||
|
||||
End Class
|
||||
|
||||
Public Class cTvTextBezeichnung
|
||||
Public Property TvTextBezeichnungID As Integer
|
||||
Public Property TvTextBezeichnung As String
|
||||
End Class
|
||||
|
||||
|
||||
Public Class cAvisoTvNewDAL
|
||||
|
||||
' Methode zum Abrufen der StandortID basierend auf dem Standortnamen
|
||||
Public Function GetStandortID(standort As String) As Integer
|
||||
Dim standortID As Integer = 0
|
||||
Dim sql As String = "SELECT StandortID FROM Standorte WHERE Standort = @Standort"
|
||||
|
||||
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
|
||||
End Using
|
||||
Catch ex As SqlException
|
||||
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
|
||||
Throw New Exception("SQL Fehler beim Abrufen der StandortID: " & ex.Message)
|
||||
Catch ex As Exception
|
||||
' Allgemeine Ausnahme weiterwerfen
|
||||
Throw New Exception("Allgemeiner Fehler beim Abrufen der StandortID: " & ex.Message)
|
||||
End Try
|
||||
|
||||
Return standortID
|
||||
End Function
|
||||
|
||||
Public Function LadenAlleTvTextBezeichnungen() As List(Of cTvTextBezeichnung)
|
||||
Dim bezeichnungen As New List(Of cTvTextBezeichnung)()
|
||||
|
||||
Try
|
||||
Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
|
||||
If conn Is Nothing Then
|
||||
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
|
||||
End If
|
||||
|
||||
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
|
||||
End Using
|
||||
End Using
|
||||
Catch ex As SqlException
|
||||
Throw New Exception("SQL Fehler beim Laden der TvTextBezeichnungen: " & ex.Message)
|
||||
Catch ex As Exception
|
||||
Throw New Exception("Allgemeiner Fehler beim Laden der TvTextBezeichnungen: " & ex.Message)
|
||||
End Try
|
||||
|
||||
Return bezeichnungen
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
' Methode zum Überprüfen, ob eine TvTextBezeichnung bereits für einen Standort existiert
|
||||
Public Function IstTvTextBezeichnungVorhanden(tvTextBezeichnung As String) As Boolean
|
||||
Dim vorhanden As Boolean = False
|
||||
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
|
||||
End Using
|
||||
Catch ex As SqlException
|
||||
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
|
||||
Throw New Exception("SQL Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message)
|
||||
Catch ex As Exception
|
||||
' Allgemeine Ausnahme weiterwerfen
|
||||
Throw New Exception("Allgemeiner Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message)
|
||||
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))
|
||||
Dim sql As String = "SELECT
|
||||
stv.TvTextBezeichnungID,
|
||||
stv.StandortID,
|
||||
a.TvTextBezeichnung,
|
||||
s.Standort,
|
||||
stv.Position,
|
||||
a.FixeZeile1RTF,
|
||||
a.FixeZeile2,
|
||||
a.FixeZeile3,
|
||||
a.Art,
|
||||
a.StartDate,
|
||||
a.EndDate,
|
||||
a.StartTime,
|
||||
a.EndTime,
|
||||
a.IsRecurring,
|
||||
a.IsMonday,
|
||||
a.IsTuesday,
|
||||
a.IsWednesday,
|
||||
a.IsThursday,
|
||||
a.IsFriday,
|
||||
a.IsSaturday,
|
||||
a.IsSunday,
|
||||
a.IsActive
|
||||
FROM AvisoTvNew a
|
||||
JOIN StandortTvBezeichnung stv ON a.TvTextBezeichnungID = stv.TvTextBezeichnungID
|
||||
JOIN StandorteTV s ON stv.StandortID = s.StandortID
|
||||
WHERE 1=1"
|
||||
|
||||
If tvid <> 0 Then
|
||||
sql &= " AND a.TvTextBezeichnungID = @TvTextBezeichnungID"
|
||||
End If
|
||||
|
||||
If Not String.IsNullOrWhiteSpace(bezeichnung) Then
|
||||
sql &= " AND a.TVTextBezeichnung LIKE @TVTextBezeichnung"
|
||||
End If
|
||||
|
||||
If Not String.IsNullOrWhiteSpace(standort) Then
|
||||
sql &= " AND s.Standort = @Standort"
|
||||
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
|
||||
|
||||
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(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"))),
|
||||
.FixeZeile2 = If(IsDBNull(dr("FixeZeile2")), Nothing, Convert.ToString(dr("FixeZeile2"))),
|
||||
.FixeZeile3 = If(IsDBNull(dr("FixeZeile3")), Nothing, Convert.ToString(dr("FixeZeile3"))),
|
||||
.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()
|
||||
Catch ex As SqlException
|
||||
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
|
||||
Throw New Exception("SQL Fehler beim Lesen der Daten: " & ex.Message)
|
||||
Catch ex As Exception
|
||||
' Allgemeine Ausnahme weiterwerfen
|
||||
Throw New Exception("Allgemeiner Fehler beim Lesen der Daten: " & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub LesenAlleAvisoTvNew(ByRef liste As List(Of cAvisoTvNew))
|
||||
' Basis-SQL-Abfrage ohne Filter
|
||||
Dim sql As String = "SELECT
|
||||
a.TvTextBezeichnungID,
|
||||
a.TvTextBezeichnung,
|
||||
a.FixeZeile1RTF,
|
||||
a.FixeZeile2,
|
||||
a.FixeZeile3,
|
||||
a.Art,
|
||||
a.StartDate,
|
||||
a.EndDate,
|
||||
a.StartTime,
|
||||
a.EndTime,
|
||||
a.IsRecurring,
|
||||
a.IsMonday,
|
||||
a.IsTuesday,
|
||||
a.IsWednesday,
|
||||
a.IsThursday,
|
||||
a.IsFriday,
|
||||
a.IsSaturday,
|
||||
a.IsSunday,
|
||||
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
|
||||
|
||||
cmd = New SqlCommand(sql, conn)
|
||||
|
||||
' 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()),
|
||||
.FixeZeile2 = If(IsDBNull(dr("FixeZeile2")), Nothing, dr("FixeZeile2").ToString()),
|
||||
.FixeZeile3 = If(IsDBNull(dr("FixeZeile3")), Nothing, dr("FixeZeile3").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()
|
||||
Catch ex As SqlException
|
||||
' Ausnahme weiterwerfen mit spezifischer Fehlermeldung
|
||||
Throw New Exception($"SQL Fehler beim Lesen der Daten: {ex.Message}")
|
||||
Catch ex As Exception
|
||||
' Allgemeine Ausnahme weiterwerfen
|
||||
Throw New Exception($"Allgemeiner Fehler beim Lesen der Daten: {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
' Methode zum Speichern von AvisoTvNew-Einträgen
|
||||
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
|
||||
|
||||
Try
|
||||
conn = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
|
||||
If conn Is Nothing Then
|
||||
Throw New Exception("Die Datenbankverbindung konnte nicht hergestellt werden.")
|
||||
End If
|
||||
|
||||
' Beginnen einer Transaktion, um Konsistenz zu gewährleisten
|
||||
transaction = conn.BeginTransaction()
|
||||
|
||||
Dim sql As String
|
||||
|
||||
If aviso.TvTextBezeichnungID = 0 Then
|
||||
' Neuanlage
|
||||
sql = "INSERT INTO AvisoTvNew (
|
||||
TvTextBezeichnung,
|
||||
FixeZeile1RTF,
|
||||
FixeZeile1HTML,
|
||||
FixeZeile2,
|
||||
FixeZeile3,
|
||||
StartDate,
|
||||
EndDate,
|
||||
StartTime,
|
||||
EndTime,
|
||||
IsRecurring,
|
||||
IsMonday,
|
||||
IsTuesday,
|
||||
IsWednesday,
|
||||
IsThursday,
|
||||
IsFriday,
|
||||
IsSaturday,
|
||||
IsSunday,
|
||||
IsActive
|
||||
) VALUES (
|
||||
@TvTextBezeichnung,
|
||||
@FixeZeile1RTF,
|
||||
@FixeZeile1HTML,
|
||||
@FixeZeile2,
|
||||
@FixeZeile3,
|
||||
@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,
|
||||
FixeZeile2 = @FixeZeile2,
|
||||
FixeZeile3 = @FixeZeile3,
|
||||
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
|
||||
|
||||
cmd = New SqlCommand(sql, 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("@FixeZeile2", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2), CType(Nothing, String), aviso.FixeZeile2))
|
||||
cmd.Parameters.AddWithValue("@FixeZeile3", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3), CType(Nothing, String), aviso.FixeZeile3))
|
||||
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)
|
||||
|
||||
If aviso.TvTextBezeichnungID <> 0 Then
|
||||
cmd.Parameters.AddWithValue("@TvTextBezeichnungID", aviso.TvTextBezeichnungID)
|
||||
End If
|
||||
|
||||
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,
|
||||
FontFamily = @FontFamily,
|
||||
FontSize = @FontSize,
|
||||
FontStyle = @FontStyle,
|
||||
TextColor = @TextColor,
|
||||
BackColor = @BackColor,
|
||||
TextAlignment = @TextAlignment
|
||||
WHERE StandortID = @StandortID AND TvTextBezeichnungID = @TvTextBezeichnungID
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO StandortTvBezeichnung (StandortID, TvTextBezeichnungID, Position, FontFamily, FontSize, FontStyle, TextColor, BackColor, TextAlignment)
|
||||
VALUES (@StandortID, @TvTextBezeichnungID, @Position, @FontFamily, @FontSize, @FontStyle, @TextColor, @BackColor, @TextAlignment)
|
||||
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.Parameters.AddWithValue("@FontFamily", aviso.FontFamily)
|
||||
cmdLink.Parameters.AddWithValue("@FontSize", aviso.FontSize)
|
||||
cmdLink.Parameters.AddWithValue("@FontStyle", aviso.FontStyle)
|
||||
cmdLink.Parameters.AddWithValue("@TextColor", aviso.TextColor)
|
||||
cmdLink.Parameters.AddWithValue("@BackColor", aviso.BackColor)
|
||||
cmdLink.Parameters.AddWithValue("@TextAlignment", aviso.TextAlignment)
|
||||
|
||||
cmdLink.ExecuteNonQuery()
|
||||
|
||||
' Transaktion committen, wenn alle Operationen erfolgreich waren
|
||||
transaction.Commit()
|
||||
|
||||
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)
|
||||
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
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
' Methode zum Setzen eines Eintrags auf inaktiv
|
||||
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
|
||||
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)
|
||||
Catch ex As Exception
|
||||
' Allgemeine Ausnahme weiterwerfen
|
||||
Throw New Exception("Fehler beim Setzen auf inaktiv: " & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
|
||||
Public Class cAvisoTV
|
||||
Property TVID As Long = 0
|
||||
Property FixeZeile1 As String
|
||||
|
||||
Reference in New Issue
Block a user