J'ai une procédure stockée qui travaille très bien, mais j'ai récemment ajouté trois nouvelles params lui:Paramètre pas passé avec SqlCommand
**@HasObits**, **@AlternateName**, and **@Notes**.
CREATE PROCEDURE dbo.sp_InsertNewRecord
(
@CountryID int,
@StateID int,
@CountyID int,
@RecordsOnline bit = 0,
**@HasObits bit = 0,**
@Name varchar(100),
**@AlternateName varchar(100) = null,**
@Address varchar(50) = null,
@Address2 varchar(50) = null,
@City varchar(50) = null,
@ZipCode varchar(10) = null,
@Phone char(10) = null,
@Fax char(10) = null,
@Email varchar(50) = null,
@Website varchar(100) = null,
@SearchURI varchar(150) = null,
**@Notes text = null,**
@AddedBy uniqueidentifier = null
)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO MyTable (CountryID, StateID, CountyID, RecordsOnline, HasObituaries, [Name], AlternateName, [Address], Address2, City, ZipCode, Phone, Fax, Email, Website, SearchURI, Notes, AddedBy)
VALUES (@CountryID, @StateID, @CountyID, @RecordsOnline, @HasObits, @Name, @AlternateName, @Address, @Address2, @City, @ZipCode, @Phone, @Fax, @Email, @Website, @SearchURI, @Notes, @AddedBy)
END
GO
Ce code est appelé par ma couche d'accès aux données dans ce méthode:
Cette même méthode a travaillé très bien, jusqu'à ce que j'ajouté trois nouveaux params. Maintenant, lorsque cette méthode s'exécute, il continue à me donner l'erreur: "@HasObits n'est pas un paramètre pour la procédure sp_InsertNewRecord" Si je commente cette ligne, il dit la même erreur seulement avec @AlternateName, alors je commente et il dit la même chose à propos de @Notes, donc je commente cela et ensuite il insère l'enregistrement avec succès.
Si je devais deviner, je dirais que le SqlCommand n'enregistre pas le param pour une raison quelconque. Je peux exécuter la commande SQL suivante dans SQL Server 2008 et il fonctionne exactement ce que je pense:
exec sp_InsertNewRecord @CountryID = 1, @StateID = 13, @CountyID = 1, @Name = 'TESTING', @HasObits = 1, @Notes = 'testing notes', @AlternateName = 'alternate name'
Je suis à une perte à ce stade. Je n'ai jamais eu un problème comme celui-ci et j'ai passé environ 5 heures à essayer de trouver une réponse à cette question, donc toute aide serait grandement appréciée!
Les DataTypes pour les paramètres transmis (company.HasObits est un bool, company.AlternateName est une chaîne et company.Notes est une chaîne).
Merci d'avance pour votre aide! Je suis très très frustré par cela et j'espère que quelqu'un pourra nous éclairer là-dessus.
Avez-vous noté que dans votre code C# vous nommez le paramètre comme 'HasObituaries' plutôt que' HasObits' comme dans la procédure stockée?Aussi, pourriez-vous inclure le texte de la chaîne 'COMPANY_INSERT'? – Rob
Vérifiez que vous exécutez le programme par rapport à la base de données correcte, et non à celle qui contient l'ancienne version de la procédure stockée – GolfWolf
Veuillez écrire le design de votre table.Et essayez de supprimer et de recréer la table. problèmes car il ne le reconnaît parfois pas – Milee