Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execute a stored procedure using VB.NET

This is my procedure

ALTER PROCEDURE sp_addUser
     @UserName nvarchar(50),    
     @Prenom nvarchar(50),  
     @Nom nvarchar(50), 
     @Mail nvarchar(50),    
     @Password char(8), 
     @Addresse nvarchar(100),   
     @Ville nvarchar(50),   
     @Province nvarchar(50),    
     @PostalCode char(6),
     @Pays nvarchar(50),    
     @AnimalGenre nvarchar(50), 
     @NomAnimal nvarchar(50),   
     @Race nvarchar(50) 
AS
BEGIN
   INSERT INTO Client
   VALUES (@UserName,@Prenom,@Nom,@Mail,@Password,@Addresse,@Ville,@Province,@PostalCode,@Pays,@AnimalGenre,@NomAnimal,@Race);
END 

I think this ok for the stored Procedure

Now the code to add value in Data Base

Sub sp_addUser()

    Dim intRowsAff As Integer

    lblErrMsg.Text = ""
    lblRecsAff.Text = ""

    Dim connectionString As String = WebConfigurationManager.ConnectionStrings("BecsEtMuseauxSQL").ConnectionString
    Dim con As SqlConnection = New SqlConnection(connectionString)

    Dim cmd As New SqlCommand("sp_addUser", con)

    cmd.CommandType = CommandType.StoredProcedure
    cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50).Value = txtUserName.Text
    cmd.Parameters.Add("@Prenom", SqlDbType.VarChar, 50).Value = txtPrenom.Text
    cmd.Parameters.Add("@Nom", SqlDbType.NVarChar, 50).Value = txtNom.Text
    cmd.Parameters.Add("@Mail", SqlDbType.NVarChar, 50).Value = txtMail.Text
    cmd.Parameters.Add("@Password", SqlDbType.Char, 8).Value = txtPass.Text
    cmd.Parameters.Add("@Addresse", SqlDbType.NVarChar, 100).Value = txtAdresse.Text
    cmd.Parameters.Add("@Ville", SqlDbType.NVarChar, 50).Value = txtVille.Text
    cmd.Parameters.Add("@Province", SqlDbType.NVarChar, 50).Value = txtProvince.Text
    cmd.Parameters.Add("@PostalCode", SqlDbType.Char, 6).Value = txtPostal.Text
    cmd.Parameters.Add("@Pays", SqlDbType.NVarChar, 50).Value = txtPays.Text
    cmd.Parameters.Add("@AnimalGenre", SqlDbType.NVarChar, 50).Value = rblAnimal.Text
    cmd.Parameters.Add("@NomAnimal", SqlDbType.NVarChar, 50).Value = txtAnimal.Text
    cmd.Parameters.Add("@Race", SqlDbType.NVarChar, 50).Value = txtRace.Text

    Try
        cmd.Connection.Open()
        intRowsAff = cmd.ExecuteNonQuery()
    Catch ex As Exception
        lblErrMsg.Text = ex.Message & ex.Source
    End Try
    lblRecsAff.Text = intRowsAff & " record(s) inserted"
    cmd.Connection.Close()
End Sub

After I execute the method VS said that I have to much specified arguments for the procedure sp_addUser

I don't understand why this generate error!

like image 777
FrankSharp Avatar asked May 07 '26 13:05

FrankSharp


2 Answers

just sync your Sp with code behind method and set parameters as sp.

Dim dt As New DataTable
    Dim sqlpr1 As New List(Of SqlParameter)

    Dim cmd As New SqlCommand()

    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "[sp_ItemPackingList]"
    cmd.Parameters.Add("@Date", SqlDbType.DateTime).Value = dateDate.Text.Trim()
    cmd.Parameters.Add("@Thk", SqlDbType.VarChar).Value = txtPendQty.Text.Trim()
    cmd.Parameters.Add("@Dia", SqlDbType.VarChar).Value = txtPendQty.Text.Trim()
    Try
        cmd.ExecuteNonQuery()
        lblMessage.Text = "Record inserted successfully"
    Catch ex As Exception
        Throw ex
        obj.GetDataTable("[sp_ItemPackingList]", sqlpr1)

    End Try
like image 135
Krunalsinh Avatar answered May 09 '26 03:05

Krunalsinh


The code and stored procedure you posted appear to be in sync.

That strongly suggests that the stored procedure in the Database is out of sync with what you expect in your code. Suggest you check what you posted is actually the stored procedure in DB.

Also Note: you should not prefix your proc with 'sp_' unless it natually resides in master.

like image 30
Mitch Wheat Avatar answered May 09 '26 04:05

Mitch Wheat