Quantcast
Channel: SQL Server Express Forum
Viewing all articles
Browse latest Browse all 484

Datenbankzugriff optimieren

$
0
0

Hallo,

 

kann man den Datenbankzugriff noch optimieren?

 

Ablaufbeschreibung:

Abfragen, ob der Datensatz schon vorhanden ist.

Wenn ja - Feld "Anzahl" +1.

Wenn nein - Datensatz einfügen.

 

Die Daten sind alle Ganzzahlen.

 

Danke, Gruß Klaus

'Abfragen ob der Datensatz schon vorhanden ist
                Anzahl = 0
                cmd10.Parameters.Clear()
                cmd10.CommandText = "SELECT COUNT (*) As Anzahl FROM DATENaus WHERE Z1 = @Z1 and Z2 = @Z2 and Z3 = @Z3 and Z4 = @Z4 and Z5 = @Z5 and Z6 = @Z6 and Z7 = @Z7 and Z8 = @Z8 and Z9 = @Z9 and Z10 = @Z10"
                cmd10.Parameters.AddWithValue("@Z1", Z1)
                cmd10.Parameters.AddWithValue("@Z2", Z2)
                cmd10.Parameters.AddWithValue("@Z3", Z3)
                cmd10.Parameters.AddWithValue("@Z4", Z4)
                cmd10.Parameters.AddWithValue("@Z5", Z5)
                cmd10.Parameters.AddWithValue("@Z6", Z6)
                cmd10.Parameters.AddWithValue("@Z7", Z7)
                cmd10.Parameters.AddWithValue("@Z8", Z8)
                cmd10.Parameters.AddWithValue("@Z9", Z9)
                cmd10.Parameters.AddWithValue("@Z10", Z10)
                Kombi = Convert.ToInt32(cmd10.ExecuteScalar())

                'Wenn Datensatz vorhanden - Anzahl +1
                 If Kombi = 1 Then
                    cmd10.Parameters.Clear()
                    cmd10.CommandText = "SELECT TOP 1 * FROM DATENaus WHERE Z1 = @Z1 and Z2 = @Z2 and Z3 = @Z3 and Z4 = @Z4 and Z5 = @Z5 and Z6 = @Z6 and Z7 = @Z7 and Z8 = @Z8 and Z9 = @Z9 and Z10 = @Z10"
                    cmd10.Parameters.AddWithValue("@Z1", Z1)
                    cmd10.Parameters.AddWithValue("@Z2", Z2)
                    cmd10.Parameters.AddWithValue("@Z3", Z3)
                    cmd10.Parameters.AddWithValue("@Z4", Z4)
                    cmd10.Parameters.AddWithValue("@Z5", Z5)
                    cmd10.Parameters.AddWithValue("@Z6", Z6)
                    cmd10.Parameters.AddWithValue("@Z7", Z7)
                    cmd10.Parameters.AddWithValue("@Z8", Z8)
                    cmd10.Parameters.AddWithValue("@Z9", Z9)
                    cmd10.Parameters.AddWithValue("@Z10", Z10)
                    Dim dr10 As Common.DbDataReader = cmd10.ExecuteReader()
                    If (dr10.Read()) Then
                        Anzahl = dr10("Anzahl")
                        ID = dr10("ID")
                    End If
                    dr10.Close()
                    dr10.Dispose()

                    Anzahl = Anzahl + 1
                    cmd10.Parameters.Clear()
                    cmd10.CommandText = "UPDATE DATENaus SET Anzahl = @Anzahl WHERE ID = @ID "
                    cmd10.Parameters.AddWithValue("@ID", ID)
                    cmd10.Parameters.AddWithValue("@Anzahl", Anzahl)
                    cmd10.ExecuteNonQuery()
                Else 'Datensatz anlegen
                    Anzahl = 1
                    cmd10.Parameters.Clear()
                    cmd10.CommandText = "INSERT DATENaus (Anzahl, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, Z10) VALUES (@Anzahl, @Z1, @Z2, @Z3, @Z4, @Z5, @Z6, @Z7, @Z8, @Z9, @Z10)"
                    cmd10.Parameters.AddWithValue("@Z1", Z1)
                    cmd10.Parameters.AddWithValue("@Z2", Z2)
                    cmd10.Parameters.AddWithValue("@Z3", Z3)
                    cmd10.Parameters.AddWithValue("@Z4", Z4)
                    cmd10.Parameters.AddWithValue("@Z5", Z5)
                    cmd10.Parameters.AddWithValue("@Z6", Z6)
                    cmd10.Parameters.AddWithValue("@Z7", Z7)
                    cmd10.Parameters.AddWithValue("@Z8", Z8)
                    cmd10.Parameters.AddWithValue("@Z9", Z9)
                    cmd10.Parameters.AddWithValue("@Z10", Z10)
                    cmd10.Parameters.AddWithValue("@Anzahl", Anzahl)
                    cmd10.ExecuteNonQuery()
                End If


Viewing all articles
Browse latest Browse all 484