Hallo.
Ich verzweifel grad.
Ich habe eine SQLServerExpress2008-Datenbank.
Darin habe ich eine Tabelle, die sich "tempview" nennt. In diese Tabelle möchte ich Daten einfügen, die ich aus einer Kombination von anderen Tabellen per SELECT lese. Also quasi so:
(Der SELECT ist recht unbequem, aber den braucht ihr nicht genauer analysieren... es geht um den INSERT )
Der Wert in "res" ist dabei dann "-1". Es kommt aber ansonsten keinen Fehler.
Wenn ich den Inhalt von "sqlcmd" aber nun direkt im SQLExpressManagementStudio absetze, dann funktioniert das ganze ohne Fehler.
Jetzt also die Frage: Warum kann ich aus VB.NET heraus über ExecuteNonQuery keine "INSERT INTO...SELECT"-Anweisung ausführen?
Vielen Dank für eure Hilfe.
Benni
Ich verzweifel grad.
Ich habe eine SQLServerExpress2008-Datenbank.
Darin habe ich eine Tabelle, die sich "tempview" nennt. In diese Tabelle möchte ich Daten einfügen, die ich aus einer Kombination von anderen Tabellen per SELECT lese. Also quasi so:
(Der SELECT ist recht unbequem, aber den braucht ihr nicht genauer analysieren... es geht um den INSERT )
VB.NET-Quellcode
- Dim Permission As New System.Data.SqlClient.SqlClientPermission(System.Security.Permissions.PermissionState.Unrestricted)
- Dim connString = "Data Source=SERVER\NAME;Initial Catalog=DBNAME;User Id=USERNAME;Password=PASSWORD;"
- Dim conn As SqlConnection
- Dim cmd As New SqlCommand
- conn = New SqlConnection(connString)
- Try
- conn.Open()
- Catch ex As SqlException
- MsgBox("Error: " & ex.ToString())
- cmdClose.PerformClick()
- Exit Sub
- End Try
- cmd.Connection = conn
- sqlcmd = "INSERT INTO tempview (ID,MandNr,Mandant,KndNr,Kunde,DokDatum,Ordner,DokName,Kommentar) (" & _
- "SELECT object12.id as ID," & _
- "stamm1.zahl1 as MandNr," & _
- "stamm1.feld1 as Mandant," & _
- "register3.zahl1 as KndNr," & _
- "register3.feld1 as Kunde," & _
- "object12.datum1 as DokDatum," & _
- "object12.feld1 as Ordner," & _
- "object12.feld2 as DokName," & _
- "object12.feld3 as Kommentar " & _
- "FROM stamm1,register3,sdrel,object12 " & _
- "WHERE stamm1.id=sdrel.stamm_id AND " & _
- "register3.id=sdrel.register AND " & _
- "stamm1.id = register3.stamm_id AND " & _
- "object12.id=sdrel.object_id)"
- Dim res As Integer = cmd.ExecuteNonQuery()
- MsgBox(res)
Der Wert in "res" ist dabei dann "-1". Es kommt aber ansonsten keinen Fehler.
Wenn ich den Inhalt von "sqlcmd" aber nun direkt im SQLExpressManagementStudio absetze, dann funktioniert das ganze ohne Fehler.
Jetzt also die Frage: Warum kann ich aus VB.NET heraus über ExecuteNonQuery keine "INSERT INTO...SELECT"-Anweisung ausführen?
Vielen Dank für eure Hilfe.
Benni