Jump to content

Stored Procedure werden aus .NET Programm nicht ausgeführt


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen!

 

Habe ein ganz komisches Phänomen!

 

Ich habe ein VB.NET Programm, welches eine Stored Procedures auf einem SQL Server (2005) ausführen soll. Am Anfang ging es auch.

 

Habe dann einen weiteren Parameter in eine SP eingefügt und seitdem wird nur noch -1 als Return Value zurückgegeben! Es kommt auch keine Exception oder so...

 

Wenn ich die SP jedoch auf dem Server "manuell" aufrufe, dann klappt das einfügen / löschen.

 

Habe dann mal eine weitere SP angelegt, die KEINE Parameter übergeben bekommt, dann klappt diese auch aus .NET heraus!?!?!?!

 

Hier mal noch der aufrufende Code:

       Try
           Dim command As SqlCommand = New SqlCommand("spDeleteEntries", connection)
           'Dim command As SqlCommand = New SqlCommand("spTest", connection)
           command.CommandType = CommandType.StoredProcedure

           command.Parameters.Add("@Date", strDate)
           command.Parameters.Add("@Uploader", cboUploader.SelectedIndex)
           command.Parameters.Add("@All", All)

           DeleteEntries = CInt(command.ExecuteNonQuery().ToString)
           MsgBox(DeleteEntries)
       Catch ex As Exception
           AddStatus("ERROR: " & ex.Message)
           'Throw
       Finally
           connection.Close()
       End Try

 

und eine der Stored Procedures:

 

USE [dbAussenstaendeTest]
GO
/****** Object:  StoredProcedure [dbo].[spDeleteEntries]    Script Date: 04/27/2009 08:24:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spDeleteEntries]
@Date As datetime,
@Uploader As Integer,
@All As bit
AS
IF @Uploader = 90 AND @All = 1
BEGIN
DELETE FROM tblAussenstaendeMoeller
END
ELSE
IF @Uploader = 95 AND @All = 1
BEGIN
DELETE FROM tblAussenstaende
END
ELSE
IF @Uploader = 95 AND @All = 0
BEGIN
DELETE FROM tblAussenstaende WHERE Monat = @Date
END
RETURN @@RowCount

 

Danke für Eure Hilfe, steh grad echt aufm Schlauch :(

 

Gruß,

MrReview

Link zu diesem Kommentar

Hallo MrReview

 

Die Parameter (@Date, @Uploader und @All) musst du in dem CommandText deines SQLCommands mit angeben. Nur Parameter, welche dort mit angegeben sind, können anschließend über die ParameterCollection befüllt und genutzt werden.

 

Anbei nochmal der entsprechende Link auf die MSDN, wo du das ganze nochmal mit einem Beispiel hinterlegt siehst: SqlCommand.Parameters Property (System.Data.SqlClient)

 

Wenn du noch Fragen hast, meld dich einfach.

 

Gruß und viel Erfolg

 

Carsten

Link zu diesem Kommentar
Hallo MrReview

 

Die Parameter (@Date, @Uploader und @All) musst du in dem CommandText deines SQLCommands mit angeben. Nur Parameter, welche dort mit angegeben sind, können anschließend über die ParameterCollection befüllt und genutzt werden.

 

Anbei nochmal der entsprechende Link auf die MSDN, wo du das ganze nochmal mit einem Beispiel hinterlegt siehst: SqlCommand.Parameters Property (System.Data.SqlClient)

 

Wenn du noch Fragen hast, meld dich einfach.

 

Gruß und viel Erfolg

 

Carsten

 

 

In dem CommandText? Aber ich gebe doch nur den Namen der Stored Procedure an und keinen SQL-String?!?!

 

Wenn ich absichtlich weniger Parameter übergebe, dann kommt ja auch ne Exception. Aber ich bekomme als Result nur -1 zurück und keine Exception?!?!

 

Und vorher hat es ja schonmal geklappt. Erst nachdem ich noch weitere Parameter eingetragen hab, geht es nicht mehr!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...