I have a form that is passed a phone number and takes the phone number and populates the form. Users make changes and click a button to update the database. I am getting the following error message. I am struggling to understand what I am doing wrong?
Object must implement IConvertible.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidCastException: Object must implement IConvertible.
Source Error:
Line 316: cmd.Parameters("@CB").Value = txtCB.Text
Line 317:
Line 318: cmd.ExecuteNonQuery()
Line 319: Catch exSql As SqlException
Line 320: 'lblError.Text = "ERROR: Unable to update database"
Source File: c:\inetpub\wwwroot\FMS\frmSalesLeadsAdmin.aspx.
vb Line: 318
Stack Trace:
[InvalidCastException: Object must implement IConvertible.]
System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
FMS.frmSalesLeadsAdmin.Update() in c:\inetpub\wwwroot\FMS\frmSalesLeadsAdmin.aspx.
vb: 318
FMS.frmSalesLeadsAdmin.btnUpdate_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\FMS\frmSalesLeadsAdmin.aspx.
vb: 383
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData)
System.Web.UI.Page.ProcessRequestMain()
HERE MY CODE FOR UPDATING
Private Sub Update()
Dim cnn As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("C onnectionString"))
Try
cnn.Open()
Dim cmd As SqlCommand = cnn.CreateCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "procUpdateSalesLead"
'pass the phone to database for searching
cmd.Parameters.Add(New SqlParameter("@Company", SqlDbType.VarChar, 255))
cmd.Parameters("@Company").Value = txtSearch.Text
cmd.Parameters.Add(New SqlParameter("@StreetAddress", SqlDbType.VarChar, 255))
cmd.Parameters("@StreetAddress").Value = txtAddress.Text
cmd.Parameters.Add(New SqlParameter("@City", SqlDbType.VarChar, 255))
cmd.Parameters("@City").Value = txtCity
cmd.Parameters.Add(New SqlParameter("@State", SqlDbType.VarChar, 50))
cmd.Parameters("@State").Value = cboState.SelectedValue
cmd.Parameters.Add(New SqlParameter("@Zip", SqlDbType.Int, 4))
cmd.Parameters("@Zip").Value = CInt(txtZip.Text)
cmd.Parameters.Add(New SqlParameter("@Phone", SqlDbType.VarChar, 10))
cmd.Parameters("@Phone").Value = txtPhone.Text
cmd.Parameters.Add(New SqlParameter("@ContactTypeID", SqlDbType.Int, 4))
cmd.Parameters("@ContactTypeID").Value = cboContactType
cmd.Parameters.Add(New SqlParameter("@FaxNumber", SqlDbType.VarChar, 10))
cmd.Parameters("@FaxNumber").Value = txtFax.Text
cmd.Parameters.Add(New SqlParameter("@WebAddress", SqlDbType.VarChar, 100))
cmd.Parameters("@WebAddress").Value = txtURL.Text
cmd.Parameters.Add(New SqlParameter("@ContactName", SqlDbType.VarChar, 255))
cmd.Parameters("@ContactName").Value = txtContact.Text
cmd.Parameters.Add(New SqlParameter("@Title", SqlDbType.VarChar, 50))
cmd.Parameters("@Title").Value = txtTitle.Text
cmd.Parameters.Add(New SqlParameter("@Gender", SqlDbType.VarChar, 50))
cmd.Parameters("@Gender").Value = cboSex.SelectedValue
cmd.Parameters.Add(New SqlParameter("@NumberOfEmployees", SqlDbType.Int, 4))
cmd.Parameters("@NumberOfEmployees").Value = CInt(txtNumOfEmpl.Text)
cmd.Parameters.Add(New SqlParameter("@Revenue", SqlDbType.VarChar, 50))
cmd.Parameters("@Revenue").Value = txtRev.Text
cmd.Parameters.Add(New SqlParameter("@Industry", SqlDbType.VarChar, 255))
cmd.Parameters("@Industry").Value = txtIndustry.Text
cmd.Parameters.Add(New SqlParameter("@Ext", SqlDbType.Int, 4))
cmd.Parameters("@Ext").Value = CInt(txtExt.Text)
cmd.Parameters.Add(New SqlParameter("@AlternativeNumber", SqlDbType.VarChar, 50))
cmd.Parameters("@AlternativeNumber").Value = txtAlt.Text
cmd.Parameters.Add(New SqlParameter("@MobilePhone", SqlDbType.VarChar, 10))
cmd.Parameters("@MobilePhone").Value = txtCell.Text
cmd.Parameters.Add(New SqlParameter("@EmailAddress", SqlDbType.NVarChar, 100))
cmd.Parameters("@EmailAddress").Value = txtEmail.Text
cmd.Parameters.Add(New SqlParameter("@Notes", SqlDbType.VarChar, 255))
cmd.Parameters("@Notes").Value = txtNotes.Text
cmd.Parameters.Add(New SqlParameter("@NI", SqlDbType.VarChar, 10))
cmd.Parameters("@NI").Value = txtNI.Text
cmd.Parameters.Add(New SqlParameter("@LM", SqlDbType.VarChar, 10))
cmd.Parameters("@LM").Value = txtLM.Text
cmd.Parameters.Add(New SqlParameter("@CB", SqlDbType.VarChar, 10))
cmd.Parameters("@CB").Value = txtCB.Text
cmd.ExecuteNonQuery()
Catch exSql As SqlException
'lblError.Text = "ERROR: Unable to update database"
lblError.Text = exSql.Message() + "" + exSql.Source() + "" + exSql.StackTrace()
Finally
cnn.Close()
cnn.Dispose()
cnn = Nothing
End Try
End Sub
HERE IS MY STORED PROCEDURE CODE
CREATE PROCEDURE procUpdateSalesLead
(
@Company varchar(255),
@StreetAddress varchar(255),
@City varchar(255),
@State varchar(55),
@Zip int,
@Phone nvarchar(10),
@ContactTypeID int,
@FaxNumber nvarchar(10),
@WebAddress varchar(255),
@ContactName varchar(255),
@Title varchar(100),
@Gender varchar(50),
@NumberOfEmployees int,
@Revenue varchar(50),
@Industry varchar(255),
@Ext int,
@AlternativeNumber varchar(10),
@MobilePhone varchar(10),
@EmailAddress varchar(255),
@Notes nvarchar(255),
@NI varchar(10),
@LM varchar(10),
@CB varchar(10)
)
AS
UPDATE tblSalesLeads
SET
Company = @Company,
StreetAddress = @StreetAddress,
City = @City,
State = @State,
Zip = @Zip,
Phone = @Phone,
ContactTypeID = @ContactTypeID,
FaxNumber = @FaxNumber,
WebAddress = @WebAddress,
ContactName = @ContactName,
Title = @Title,
Gender = @Gender,
NumberOfEmployees = @NumberOfEmployees,
Revenue = @Revenue,
Industry = @Industry,
Ext = @Ext,
AlternativeNumber = @AlternativeNumber,
MobilePhone = @MobilePhone,
EmailAddress = @EmailAddress,
Notes = @Notes ,
NI = @NI,
LM = @LM,
CB = @CB
WHERE Phone = @Phone
GO