wenn die anderen so wortkarg sind muss wohl der meister ran
moment ich hole ihn mal *g*
1. die ID holt man nicht mit MAX() geht zwar auch, aber so tut mans nicht
Private Function GetLastID() As Integer
Try
m_cmd.CommandText = "SELECT @@identity"
Dim i As Integer
If Integer.TryParse(m_cmd.ExecuteScalar().ToString, i) Then
Return i
Else
Return 0
End If
Catch ex As Exception
MessageBox.Show(ex.ToString, "MyXClasses.Command.GetLastID")
Throw ex
Finally
m_cmd.CommandText = ""
End Try
End Function m_cmd ist ein gültiges Command Objekt mit einer geöffneten Connection
mit dem befehl "SELECT @@IDENTITY" wird die letzte erzeugte ID der akutellen Connection abgefragt, such mal danach, gibts einige schlüsselwörter
2.
wie bekommt man einen einzelnen string als ergebnis zurück?
Public Function SELECTString(ByVal SQLString As String) As String
Try
m_cmd.CommandText = SQLString
Dim retVal As Object
retVal = m_cmd.ExecuteScalar
If TypeOf retVal Is System.DBNull Then
Return ""
Else
Return CType(retVal, String)
End If
Catch ex As System.Exception
cIO.File.WriteLine("C:\Protokoll.txt", SQLString & _
System.Environment.NewLine & ex.ToString)
Throw ex
Finally
End Try
End Function
Public Function SELECTString(ByVal TableName As String, ByVal FieldName As _
String, ByVal WHEREString As String) As String
Return SELECTString("SELECT " & FieldName & " FROM " & TableName & "" & _
"WHERE " & WHEREString)
End Function geht z.b. auch mit dem max wert so
Public Function SELECTMax(ByVal TableName As String, ByVal FieldName As _
String, Optional ByVal WHEREString As String = "") As Double
Dim SQLString As String = ""
Try
SQLString = _
"SELECT CASE WHEN MAX(" & FieldName & ") IS NULL THEN 0 ELSE MAX(" _
& FieldName & ") END FROM " & TableName & "" & _
IIf(WHEREString.Equals(""), "", " WHERE " & WHEREString).ToString
m_cmd.CommandText = SQLString
Return CType(m_cmd.ExecuteScalar(), Double)
Catch ex As System.Exception
cIO.File.WriteLine("C:\Protokoll.txt", SQLString & _
System.Environment.NewLine & ex.ToString)
Throw ex
End Try
End Function meine beispiele beziehen sich alle auf den SQL-Server, da Du nicht angegeben hast welche datenbank Du benützt weis ich nicht ob es funktioniert, aber der springende Punkt ist in diesem fall die verwendung von ExecuteScalar
hier sieht man auch verschieden Arten von Typenkonvertierungen, welche eventuell auch interessant sein könnten (TryParse) 0 |