Bonjour,
Je suis débutante, après avoir rempli tous les champs je reçois cette erreur "could not find stored procedure 'select max( 'id contrat') from contrat"
sachant que id contrat est un champ auto incrémenté.
voici mon code :
Voici le code de la procédure stockée :
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161 Public Class Ajouter_un_contrat Private sql2 As New SQLControl Dim cmd As New SqlCommand Dim marequete As String Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click sql2.SQLcon.ConnectionString = "server=**********;Database=ContratMaintenance;User=sa;Pwd=********;" Try sql2.SQLcon.Open() If sql2.SQLcon.State = ConnectionState.Open Then cmd.CommandType = CommandType.StoredProcedure marequete = "spCONTRAT" With cmd.Parameters .Add(New SqlParameter("@DureeContrat", SqlDbType.Int, 2)) .Add(New SqlParameter("@ModeRenouvelement", SqlDbType.NChar, 30)) .Add(New SqlParameter("@DateDebut", SqlDbType.Date)) .Add(New SqlParameter("@DateFin", SqlDbType.Date)) .Add(New SqlParameter("@TVAContrat", SqlDbType.Float, 4)) .Add(New SqlParameter("@MontantContrat", SqlDbType.Float, 25)) .Add(New SqlParameter("@PourcTrancheContrat", SqlDbType.Real, 2)) .Add(New SqlParameter("@MontantTranche", SqlDbType.Real, 2)) .Add(New SqlParameter("@TypeMaintenance", SqlDbType.VarChar, 30)) End With With cmd .Parameters("@DureeContrat").Value = DureeContrat.Text .Parameters("@ModeRenouvelement").Value = ModeRenouvelement.Text .Parameters("@DateDebut").Value = DateDebut.Text .Parameters("@DateFin").Value = DateFin.Text .Parameters("@TVAContrat").Value = TVA.Text .Parameters("@MontantContrat").Value = MontantContrat.Text .Parameters("@PourcTrancheContrat").Value = PourcentageTranche.Text .Parameters("@MontantTranche").Value = MontantTranche.Text .Parameters("@TypeMaintenance").Value = TypeMaintenance.Text End With cmd.Connection = sql2.SQLcon cmd.ExecuteNonQuery() MsgBox("Ajouté avec succès", MsgBoxStyle.Information, "Ajout") Else MsgBox("vous devez remplir tous les champs", MsgBoxStyle.Exclamation, "Attention") End If sql2.SQLcon.Close() autogenerate() DureeContrat.Clear() ModeRenouvelement.Clear() TVA.Clear() MontantContrat.Clear() PourcentageTranche.Clear() MontantTranche.Clear() TypeMaintenance.Clear() cmd.Parameters.Clear() DureeContrat.Focus() Catch ex As Exception MsgBox(ex.Message) If sql2.SQLcon.State = ConnectionState.Open Then sql2.SQLcon.Close() End If End Try End Sub Private Sub autogenerate() Try sql2.SQLcon.Open() Dim number As Integer cmd.CommandType = CommandType.Text cmd.CommandText = "Select Select max(idcontrat) from Contrat " cmd.Connection = sql2.SQLcon If IsDBNull(cmd.ExecuteScalar) Then number = 1 ListBox1.Items.Add(number) Else number = cmd.ExecuteScalar + 1 ListBox1.Items.Add(number) End If cmd.Dispose() sql2.SQLcon.Close() sql2.SQLcon.Dispose() Catch ex As Exception MsgBox(ex.Message) If sql2.SQLcon.State = ConnectionState.Open Then sql2.SQLcon.Close() End If End Try End Sub
Code SQL : 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 ALTER PROCEDURE [dbo].[spCONTRAT] @DureeContrat int= null, @ModeRenouvelement nchar(30)= null, @DateDebut date= null, @DateFin date= null, @TVAContrat float(4)= null, @MontantContrat float(25)= null, @PourcTrancheContrat real= null, @MontantTranche real= null, @TypeMaintenance varchar(50)= null AS BEGIN SET NOCOUNT ON; insert into [dbo].[Contrat] ([DureeContrat] , [ModeRenouvelement] ,[DateDebut] ,[DateFin] ,[TVAContrat] ,[MontantContrat] ,[PourcTrancheContrat] ,[MontantTranche] ,[TypeMaintenance]) values ( @DureeContrat, @ModeRenouvelement, @DateDebut, @DateFin , @TVAContrat , @MontantContrat , @PourcTrancheContrat , @MontantTranche, @TypeMaintenance ) END execute spCONTRAT
j'ai fais des recherches j'ai lu que le select max avec identity provoque des problèmes, Pouvez vous m'aidez a trouver l'erreur
Partager