bonjour,
Mon objectif au départ est d'arriver à utiliser une procédure stockée avec un argument en entrée pour définir la clause "where" de mon select !
Face à mon échec, j'essaye de simplifier :
Ma procédure stockée (simple select) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 USE [test] GO /****** Object: StoredProcedure [dbo].[p_liste_tache] Script Date: 07/11/2015 19:21:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[p_liste_tache] AS select Id_tache,demande_tache,date_tache as Date,intervenant_tache as Intervenant,detail_tache as Detail from tblDemandeTache where demande_tache='96';
Une partie de mon code C#
Je ne passe pour l'instant volontairement de paramètre à ma procédure !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try { String connectionString = "Data Source=CHNET\\SQLEXPRESS;Initial Catalog=test;User ID=sa;Password=*"; SqlConnection connection = new SqlConnection(connectionString); // Create a DataSet. DataSet data = new DataSet(); data.Locale = System.Globalization.CultureInfo.InvariantCulture; SqlCommand cmd = new SqlCommand("p_liste_tache",connection); cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter masterDataAdapter = new SqlDataAdapter(cmd); masterDataAdapter.Fill(data, "tblDemandeTache");
Si j'éxécute ma procédure dans SqlServer, elle me retourne bien l'enregistrement par contre, le code C# lui ne retourne rien ("derrière un bind sur un
controle GridView construit à la volée) !
Par contre si dans ma procédure je supprime la clause "where demande_tache='96';" le DataSet est bien alimenté et mon code C# fonctionne.
J'ai préféré ne pas vous coller tout mon code C# cela n'est peut être pas utile
J'ai déjà utilisé des procédures stockées pour des update et insert pas de soucis mais je ne vois pas pourquoi cela fonctionne sous sqlserver et pas via C#
Une idée ?
Merci








Répondre avec citation
Partager