Dies könnte ein SQL Server-Setup-Problem sein, aber ich bin nicht sicher, wo ich anfangen soll."Die falsche Anzahl der Parameter stimmt nicht mit der Anzahl der Werte für gespeicherte Prozesse überein" System.Data.Common.DbCommand Nuance
Ich habe eine gespeicherte Prozedur:
CREATE PROCEDURE aStoredProcedure
@dteSince DATETIME = null
AS
...
das C# -Code die gespeicherte Prozedur aufzurufen ist: -
using (IDataReader dr = database.ExecuteReader("aStoredProcedure"))
{
...
Die C# -Code funktioniert auf der Produktion Umwelt. Hier wird dteSince auf Null gesetzt, da es nicht als Eingabeparameter bereitgestellt wird.
Problem ist, wenn ich dies in der UAT-Umgebung ausführen, wird die Nachricht in dem Titel gezeigt gibt - falsche Anzahl an Parametern ...
ich dies, indem Sie den Code beheben: -
Das Update maskiert nur das eigentliche Problem, wie der Code in einer Umgebung fehlschlägt und auf einer anderen einwandfrei funktioniert.
Ich habe die gespeicherte Prozedur gelöscht und neu erstellt, ohne Glück.
Technologies verwendet C# 2.0 & SQL Server 2005.
Stimmen Sie mit Ihnen bezüglich der Explizitheit überein. Ich habe versucht, einen Codewechsel zu vermeiden, bis wir das eigentliche Problem gelöst haben. Es könnte mit dem optionalen Eingabe-Parameter (NULLS) zu tun haben. Ich werde sehen, was ich in diesem Bereich finden kann. Danke für Ihre Hilfe. – Ferdeen
Überprüft die ANSI_NULLS und CONCAT_NULL_YIELDS_NULL und sie sind identisch. Ich dachte fast, das wäre das Problem. Sieht so aus, als ob die C# -Code-Änderung die einzige Route ist. Danke noch einmal. – Ferdeen