überschneidende Zeiten erfassen

royalboy

Mitglied
Hallo Zusammen

Ich entwickle zur Zeit eine Zeiterfassungsapplikation. Wie kann man verhindern, überschneidende(d.h. für 2 Aufträge gleichzeitiges Arbeiten) Zeiten zu erfasssen?

Wie kann ich überprüfen ob bestimmete Wert schon existieren, resp. im DB gespeichert sind?

danke
 
Du lässt dir per SQL-Anfrage alle Aufträge ausgeben, wo gilt:

Starttermin(neuer Eintrag) <= Endtermin(DB-Einträge) UND Endtermin(neuer Eintrag) >= Starttermin(DB-Einträge)

Damit hast du alle Überschneidungen - gibt's keine, gibt's keine Überschneidungen :)
 
Ich habe eine Stored Procedure erstellt. Der liefter mir x datarows. Ich möchte an einer Textbox nur ausgeben, wie viele rows der SP mir geliefert, resp. gefunden hat.

z.B der SP findet 20 Zeilen und dann möchte ich, dass es in der Textbox "20 Zeilen gefunden" anzeigt. Wie mache ich das?
Bitte um Verständnis, bin noch ein ASP.NET - und SQL -Neuling.

Danke
 
Also wenn du die Datensätze gar nicht erst brauchst, gib im SQL-Statement statt irgendwelcher Spaltennamen nur COUNT(*) ein. Das liefert dir nur die Anzahl der Datensätze.
 
Ich möchte nur überprüfen, ob es überschneidungen gibt oder nicht. Wie funktioniert es mit dem Count(x)-Befehl?
 
Nicht "COUNT(x)", sondern "COUNT(*)" !
Also statt z.B.
PHP:
SELECT * FROM meineTabelle
,was dir alle (gefundenen) Datensätze mit allen Spalten zurückgibt, schreibst du
PHP:
SELECT COUNT(*) FROM meineTabelle
Dann erhältst du die Anzahl aller (gefundenen) Datensätze.

So, wer verschiebtr das Thema mal nach Datenbanken/SQL ? :)
 
OK, Jetzt erhalte den gewünschten Resultat, aber wie füge ich die Anzahl aller (gefundenen) Datensätze zu einem Textbox hinzu?

Irgendwie so?

PHP:
Private Sub überschneidung()
        Dim cnnSqlConn As New SqlConnection(Session(gcSessVarConnString).ToString)
        Dim cmd As New SqlCommand(gcgetüberschneidung, cnnSqlConn)
        Dim dad As New SqlDataAdapter(cmd)
        Dim dsData01 As New DataSet

        ' Connection öffnen
        cnnSqlConn.Open()

        cmd.CommandType = CommandType.StoredProcedure

        'DataSet füllen
        dad.Fill(dsData01, "Zeit")

        ' Connection schliessen
        cnnSqlConn.Close()

      Me.TextBox1.Text = dsData01.Tables(0).Rows(0).Item("*")
     
'?
        ' aufräumen
        dsData01.Dispose()
        dad.Dispose()
        cmd.Dispose()

    End Sub
 
Versuch's doch mal so:
Code:
Private Sub überschneidung() 
        Dim cnnSqlConn As New SqlConnection(Session(gcSessVarConnString).ToString) 
        Dim cmd As New SqlCommand(gcgetüberschneidung, cnnSqlConn) 

        ' Connection öffnen 
        cnnSqlConn.Open() 

       Me.TextBox1.Text = cmd.ExecuteScalar();
 
        ' Connection schliessen 
        cnnSqlConn.Close() 
     
'? 
        ' aufräumen 
        cmd.Dispose() 

    End Sub
 
Zurück