Ошибка преобразования значения varchar к int при получении вывода от storeprocedure?
Мой код
Dim connectionString As String = ConfigurationManager.ConnectionStrings("ConString").ConnectionString Dim conn As New SqlConnection(connectionString) Dim cmd As New SqlCommand(query, conn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("@fName", txtFirstName.Text) cmd.Parameters.AddWithValue("@Lname", txtLName.Text) cmd.Parameters.AddWithValue("@Sex", CBSex.SelectedItem.ToString) cmd.Parameters.AddWithValue("@DOB", Convert.ToDateTime(DTDOB.Text)) cmd.Parameters.AddWithValue("@Age", txtAge.Text) cmd.Parameters.AddWithValue("@Address", txtAddress.Text) cmd.Parameters.AddWithValue("@phno", txtPhNo.Text) cmd.Parameters.AddWithValue("@Email", txtEmail.Text) cmd.Parameters.AddWithValue("@IdNo", txtIDNo.Text) cmd.Parameters.AddWithValue("@contactPerson", txtContactPerson.Text) cmd.Parameters.AddWithValue("@Relation", txtRelation.Text) cmd.Parameters.AddWithValue("@claimid", SqlDbType.VarChar) cmd.Parameters("@claimid").Direction = ParameterDirection.Output cmd.Parameters.AddWithValue("@cpPhno", txtCPPhno.Text) cmd.Parameters.AddWithValue("@Photo", profilepicture) cmd.Parameters.AddWithValue("@ID", idorpassport) Dim a As Integer conn.Open() a = cmd.ExecuteNonQuery() If a > 0 Then MessageBox.Show("Data Added successfully and your clientID is :" & cmd.Parameters("@claimid").Value.ToString()) Else MessageBox.Show("Please try Again") End If
Моя storedprocedure
@fName varchar(50), @Lname Varchar(50), @Sex varchar(2), @DOB date, @Age int, @Address varchar(500), @phno varchar(15), @Email Varchar(100), @IdNo varchar(30), @contactPerson varchar(50), @Relation Varchar(50), @claimid varchar(30)output, @cpPhno varchar(15), @Photo image, @ID image AS BEGIN if @Sex='Male' begin set @Sex='M' end if @Sex='Female' begin set @Sex='F' end insert into Client(FirstName,LastName,Sex,DOB,Age,[Address],PhNo,email,[IDCard/passNumber],ContactPerson,Relation,TelephoneNOContact,Created_date,photo, [pass/idcard]) values(@fName,@Lname,@Sex,@DOB,@Age,@Address,@phno,@Email,@IdNo,@contactPerson,@Relation,@cpPhno,GETDATE(),@Photo,@ID) set @claimid='CT-00000'+convert(varchar,SCOPE_IDENTITY()) update Client set ClientID=@claimid where ClientCode=SCOPE_IDENTITY() return @claimid END
Что я уже пробовал:
Я получаю ошибку не могу преобразовать varchar в тип int пожалуйста решите эту проблему
F-ES Sitecore
Как вы собираетесь преобразовать "CT-000001" в int? Если ваш код заботится только о новом идентификаторе, а не о бите" CT -", то верните только SCOPE_IDENTITY, а не текст @claimed.