Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Variable überprüfen ASP.NET

magic_halli / 2 Antworten / Baumansicht Nickles
Ich habe eine Variable1. Diese soll mit Tabelle1.Spalte1 verglichen werden, ob sie darin schon vorhanden ist.
Das kann man ja mit Select COUNT(*) From Tabelle1 machen.
Jetzt habe ich einen nun Treffer. Wenn das der Fall ist, ist Variable1=Variable1+1.
Dies soll dann auch wieder überprüft werden, ob schon vorhanden in Tabelle1. Wenn ich erneut einen Treffer habe, dann wieder Variable1=Variable1+1 usw...
Aber wie programmiere ich sowas - Schleifen etc. ??? Habe keine Ahnung!

Ich habe mal was programmiert, was allerdings nicht richtig funktioniert. Hier mal der Code:

  'hier wird Variable1 belegt
Dim dr_bez() As DataRow = ds_bez.Tables("beziehungen").Select()
idbez = dr_bez(i)("IDbez")

Sprung1: 'ist die Sprungmarke des GoTo
Dim sql_check As String = "Select COUNT(*) From vw_in_stamm_vorhanden Where IDbez='" & idbez & "' AND IDmat='" & idmat & "' "
Dim cmd_check As New SqlCommand(sql_check, planconn)
planconn.Open()
Dim check As Integer
check = cmd_check.ExecuteScalar
planconn.Close()
'Überprüfung, ob Variable1 in bestimmter Konstellation schon vorhanden ist
If check > 0 Then
idbez = dr_bez(i + 1)("IDbez")
GoTo Sprung1
End If
...
'jetzt kommt nur noch das Insert-Kommando

Die Abarbeitung dauert ewig, wenn eine Übereinstimmung in der DB schon vorhanden ist!!! Ich weiß nicht mehr weiter - bitte helft mir!

Danke, Rico.

PS.: Die Benutzung von GoTo war nur eine Ausweichlösung. Normalerweise macht man das ja nicht...

bei Antwort benachrichtigen
Borlander magic_halli „Variable überprüfen ASP.NET“
Optionen

Verrrat uns doch erst mal was Du überhaupt prüfen willst, evtl. kann man das deutlich effektiver machen...
Auch hier würde es schon reichen nur ein einziges Ergebnis anzuzeigen - und nicht Datensätze durchzuprüfen auch wenn schon feststeht das einer die Bedingung erfüllt...

bei Antwort benachrichtigen
HADU magic_halli „Variable überprüfen ASP.NET“
Optionen

oh jeh - wusste gar nicht, dass der "Goto" überhautp noch möglich ist ...
Du baust für jede Abfrage eine Connection zum SQL Server auf - das alleine ist innerhalb einer Schleife schon sehr Zeitaufwändig. Dann kommt noch hinzu: Du schickst eine Abfrage als String - das ist eine Menge Daten übers Netzwerk. Der SQL Server muss den String jedes Mal aufs neue zerlegen und interpretieren. Dann kann er ihn erst ausführen.
Sinnvoller ist es den Wert an den SQL Server zu übergeben und dort in einer Stored Procedure zu überprüfen
Ansonsten schließe ich mich Borlander an - erzähl erst einmal, was das Ziel Deiner Abfrage ist.

Gruß HADU

bei Antwort benachrichtigen