【发布时间】:2015-12-05 01:58:10
【问题描述】:
注意:感谢这里的反馈是我更正/工作的代码: 我在 Visual Studio VB.NET 中工作,执行一个 SQL Server 存储过程,该过程应该获取表单的文本字段并将信息添加到数据库中。
我收到状态的错误消息
过程 spVehicleAddNew 没有提供参数和参数。
以下是我的存储过程和 Visual Basic 代码的代码。我是执行存储过程的新手,并且会感谢任何帮助找出此错误消息。谢谢!
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
存储过程:
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;`
【问题讨论】:
-
VBA 适用于 ms office 应用程序。 VB.net 适用于视觉工作室。您将获得更多准确标签的帮助。
-
顺便说一下,考虑一下如果在 Try 块中抛出错误会发生什么:如果 SqlConnection 是打开的,它不会被关闭。您可以添加一个 finally 块或使用Using 来消除该问题。
标签: sql-server vb.net stored-procedures