Formulaire Insertion avec AutoIdentity VB.net
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 :
Code:
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 |
Voici le code de la procédure stockée :
Code:
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