Reputation: 15
Note: Thanks to the feedback here is my corrected/working code: I am working in Visual Studio VB.NET executing a SQL Server stored procedure that should take my form's text fields and add the information into the database.
The error message I am getting states
Procedure spVehicleAddNew has no parameters and arguments were supplied.
Below is the code for both my stored procedure as well as the visual basic code. I am new to executing stored procedures and would appreciating any help figuring out this error message. Thanks!
Private Sub btnAddToInventory_Click(sender As Object, e As EventArgs) Handles btnAddToInventory.Click
Try
Dim sqlConnection1 As New SqlConnection("Data Source=GALE-PC1\SQLEXPRESS2012;Initial Catalog=VehicleCheckout;Integrated Security=True")
Dim cmd As New SqlCommand
cmd.Parameters.Clear()
cmd.CommandText = "spVehicleAddNew"
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = sqlConnection1
cmd.Parameters.AddWithValue("@VehicleTagNo", txtVehicleTagNo.Text)
cmd.Parameters.AddWithValue("@VehicleVIN", txtVehicleVIN.Text)
cmd.Parameters.AddWithValue("@VehicleLicense", txtVehicleLicense.Text)
cmd.Parameters.AddWithValue("@Make", txtMake.Text)
cmd.Parameters.AddWithValue("@Model", txtModel.Text)
cmd.Parameters.AddWithValue("@VehicleYear", txtYear.Text)
cmd.Parameters.AddWithValue("@Color", txtColor.Text)
cmd.Parameters.AddWithValue("@Seats", txtSeats.Text)
cmd.Parameters.AddWithValue("@Available", ckbAvailable.Text)
cmd.Parameters.AddWithValue("@VehicleComments", txtAvailableComments.Text)
cmd.Parameters.AddWithValue("@VehicleNotes", txtVehicleNotes.Text)
cmd.Parameters.AddWithValue("@CurrentMileage", txtCurrentMileage.Text)
cmd.Parameters.AddWithValue("@NextServiceMileage", txtNextServiceMileage.Text)
cmd.Parameters.AddWithValue("@Scrap", ckbScrap.Text)
cmd.Parameters.AddWithValue("@GPS", ckbGPS.Text)
cmd.Parameters.AddWithValue("@CassettePlayer", ckbCassettePlayer.Text)
cmd.Parameters.AddWithValue("@CDPlayer", ckbCDPlayer.Text)
cmd.Parameters.AddWithValue("@DVDPlayer", ckbDVDPlayer.Text)
cmd.Parameters.AddWithValue("@Convertible", ckbConvertible.Text)
sqlConnection1.Open()
cmd.ExecuteNonQuery()
sqlConnection1.Close()
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
Stored procedure:
Create PROC spVehicleAddNew
@VehicleTagNo varchar(30),
@VehicleVIN varchar(100),
@VehicleLicense varchar(50),
@Make varchar(30),
@Model varchar(30),
@VehicleYear int,
@Color varchar(20),
@Seats int,
@Available bit,
@AvailableComments varchar(1000),
@VehicleNotes varchar(1050),
@CurrentMileage int,
@NextServiceMileage int,
@Scrap bit,
@GPS bit,
@CassettePlayer bit,
@CDPlayer bit,
@DVDPlayer bit,
@Convertible bit,
@VehicleID int
AS
BEGIN TRY
BEGIN TRAN;
INSERT Vehicle
(VehicleTagNo, VehicleVIN, VehicleLicense, Make, Model, VehicleYear, Color, Seats, Available, AvailableComments, VehicleNotes, CurrentMileage, NextServiceMileage, Scrap)
VALUES(@VehicleTagNo, @VehicleVIN, @VehicleLicense, @Make, @Model, @VehicleYear, @Color, @Seats, @Available, @AvailableComments, @VehicleNotes, @CurrentMileage, @NextServiceMileage, @Scrap);
SET @VehicleID = @@IDENTITY;
INSERT Amenities
(GPS, CassettePlayer, CDPlayer, DVDPlayer, Convertible, VehicleID)
VALUES(@GPS, @CassettePlayer,@CDPlayer,@DVDPlayer,@Convertible, @VehicleID);
COMMIT TRAN;
END TRY
BEGIN CATCH
ROLLBACK TRAN;
END CATCH;`
Upvotes: 0
Views: 510
Reputation: 36
Your stored procedure does not contain any parameter ... You have mistakenly declared them as variables inside the procedure instead ... Also, you don't need to define VehicleId as a parameter, as you are using it as an identity column inside your procedure ... It should be rather defined as
Create PROC spVehicleAddNew(
@VehicleTagNo varchar(30),
@VehicleVIN varchar(100),
@VehicleLicense varchar(50),
@Make varchar(30),
@Model varchar(30),
@VehicleYear int,
@Color varchar(20),
@Seats int,
@Available bit,
@AvailableComments varchar(1000),
@VehicleNotes varchar(1050),
@CurrentMileage int,
@NextServiceMileage int,
@Scrap bit,
@GPS bit,
@CassettePlayer bit,
@CDPlayer bit,
@DVDPlayer bit,
@Convertible bit)
as
BEGIN TRY
Declare @VehicleID int
BEGIN TRAN;
INSERT Vehicle
(VehicleTagNo, VehicleVIN, VehicleLicense, Make, Model, VehicleYear, Color, Seats, Available, AvailableComments, VehicleNotes, CurrentMileage, NextServiceMileage, Scrap)
VALUES(@VehicleTagNo, @VehicleVIN, @VehicleLicense, @Make, @Model, @VehicleYear, @Color, @Seats, @Available, @AvailableComments, @VehicleNotes, @CurrentMileage, @NextServiceMileage, @Scrap);
SET @VehicleID = @@IDENTITY;
INSERT Amenities
(GPS, CassettePlayer, CDPlayer, DVDPlayer, Convertible, VehicleID)
VALUES(@GPS, @CassettePlayer,@CDPlayer,@DVDPlayer,@Convertible, @VehicleID);
COMMIT TRAN;
END TRY
BEGIN CATCH
ROLLBACK TRAN;
END CATCH;
Upvotes: 1