rcowen00
asked on
Procedure or function VendorCoverageInsert has too many arguments specified.
Can anyone tell me why I am getting this error? Am I not referencing the checkbox properly? I would like the user to select as many zip codes from the gridview, click the submit button and append all selected records to the table. Thanks.
Code behind called when user clicks the button
Stored Procedure called by the code behind
Gridview
Code behind called when user clicks the button
Protected Sub btnAddSelectedCoverage_Click(sender As Object, e As EventArgs) Handles btnAddSelectedCoverage.Click
Dim cnn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("myprovalConnectionString").ConnectionString)
Try
Dim cmd As New System.Data.SqlClient.SqlCommand
cmd.Connection = cnn
cmd.CommandType = Data.CommandType.StoredProcedure
cmd.CommandText = "dbo.VendorCoverageInsert"
For Each gvRow As GridViewRow In gdvZipList.Rows
Dim chkBox As CheckBox = CType(gvRow.FindControl("RowLevelCheckBox"), CheckBox)
If chkBox.Checked Then
cmd.Parameters.Add("@VendorId", Data.SqlDbType.VarChar).Value = Session("VendorId").ToString
cmd.Parameters.Add("@UserId", Data.SqlDbType.VarChar).Value = Session("VendorId").ToString
cmd.Parameters.Add("@Coverage", Data.SqlDbType.Char).Value = chkBox.ToString
End If
Next
Dim dt As New System.Data.DataTable
cnn.Open()
cmd.ExecuteScalar()
Dim sRedirect As String = "VendorAddEditCoverage.aspx?VID=" + Session("VendorId").ToString
Response.Redirect(sRedirect)
Finally
cnn.Close()
End Try
End Sub
Stored Procedure called by the code behind
ALTER PROCEDURE dbo.VendorCoverageInsert
(
@UserId VarChar(50),
@VendorId Varchar(50),
@Coverage char(5)
)
AS
BEGIN
INSERT INTO VendorCoverageArea
(VendorId, ZipCode, CreatedUser, ModifiedUser)
VALUES (@VendorId,@Coverage,@UserId,@UserId)
END
Gridview
<asp:GridView ID="gdvZipList" runat="server" AutoGenerateColumns="False"
CssClass="mGrid" Width="257px">
<Columns>
<asp:TemplateField HeaderText="Select">
<EditItemTemplate>
<asp:CheckBox ID="RowLevelCheckBox" runat="server" Checked='<%# Bind("ZipCode") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="RowLevelCheckBox" runat="server" Checked='<%# Bind("ZipCode") %>'
Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ZipCode" HeaderText="Zip Code" />
</Columns>
</asp:GridView>
ASKER
I'm getting "The connection was not closed. The connection's current state is open."
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
It is working but it is inserting "Syste" for every zipcode that is selected.
fire the command from within your for loop:-
Open in new window