Je continue mon apprentissage laborieux avec les Windows Forms et SQL Server. Il est vrai que, jusque là, je me servais d'Access comme frontal ce qui était simple et efficace.
Voilà mon actuel problème :
J'ai fait une procédure stockée dans SQL Server. Pas de souci. Ce que je voulais c'est qu'elle utilise deux paramètres prénom et nom d'auteur, mais qu'elle puisse retourner la sélection même si le prénom est omis. Ci dessous le script SQL
Je peux donc l'exécuter en ne passant que le seul nom d'auteur.
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
16
17
18
19
20
21
22
23
24
25
26 CREATE PROCEDURE dbo.Proc_Ouvrages_par_auteur @auteur_nom varchar(50) = NULL, @auteur_prenom varchar(50) = NULL AS BEGIN SET NOCOUNT ON; SELECT Auteurs.Nom, Auteurs.Prénom, Ouvrages.Titre, Ouvrages.[Sous-titre], Catégories.[Nom de la catégorie], Editeurs.Nom AS Editeur, Collections.[Titre de collection] FROM Catégories INNER JOIN Auteurs INNER JOIN Editeurs INNER JOIN Collections ON Editeurs.éditeurID = Collections.éditeurID INNER JOIN Ouvrages ON Editeurs.éditeurID = Ouvrages.éditeurID AND Collections.collectionID = Ouvrages.collectionID ON Auteurs.auteurID = Ouvrages.auteurID ON Catégories.catégorieID = Ouvrages.catégorieID WHERE Auteurs.Nom = ISNULL(@auteur_nom, Auteurs.Nom) AND Auteurs.Prénom = ISNULL(@auteur_prenom, Auteurs.Prénom) GROUP BY Auteurs.Nom, Auteurs.Prénom, Ouvrages.Titre, Ouvrages.[Sous-titre], Catégories.[Nom de la catégorie], Editeurs.Nom, Collections.[Titre de collection] RETURN END GO
Le problème est que quand je l'utilise dans un Windows Form le ToolStripButton avec son code généré automatiquement, s'il fonctionne très bien quand je renseigne prénom et nom dans les textBox, eux aussi générés automatiquement, ne me retourne rien dans le dataGridView si je renseigne seulement nom.
Ci dessous le code du fillToolStripButton_Click
Et je ne vois pas trop ce que je peux faire (exécutée depuis Visual Studio, la procédure stockée, avec le seul nom d'auteur, fonctionne bien).
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 private void fillToolStripButton_Click(object sender, EventArgs e) { try { this.proc_Ouvrages_par_auteurTableAdapter.Fill (this.bibliWMDataSet.Proc_Ouvrages_par_auteur, auteur_nomToolStripTextBox.Text, auteur_prenomToolStripTextBox.Text); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }
Je sollicite donc vos lumières.
Partager