>oCommand.CommandText = "INSERT INTO [TIP_AmendmentApprovedFunding] (AmendmentNumber, TipID, Amount, Fundtype, Year, Phase) " >oCommand.CommandText += "SELECT @AmendmentNumber, TipID, Amount, Fundtype, Year, Phase " >oCommand.CommandText += "FROM [TIP_ApprovedFunding] WHERE (TipID = @TipID and year > @AmendmentNumber-1 and year < @AmendmentNumber+4)" >oCommand.ExecuteNonQuery() >has been working fine for months. Today all of a sudden it no longer works. With a value of 2014.05 for the @AmendmentNumber, it crashes with an error that says it can't convert the varchar value '2014.05' to an integer. Why it wants to convert it to an integer is beyond me. The field it's going into is a number(7,2) field.
>oCommand.CommandText = "INSERT INTO [TIP_AmendmentApprovedFunding] (AmendmentNumber, TipID, Amount, Fundtype, Year, Phase) " >oCommand.CommandText += "SELECT @AmendmentNumber, TipID, Amount, Fundtype, Year, Phase " >oCommand.CommandText += "FROM [TIP_ApprovedFunding] WHERE (TipID = @TipID and year between convert(integer, @AmendmentNumber) and convert(integer, @AmendmentNumber + 4))" >oCommand.ExecuteNonQuery() >>but it renders the same error. The parameter value is set like this
>oCommand.Parameters.AddWithValue("@AmendmentNumber", Amendments_DDL.SelectedValue) >>Any thoughts?
oCommand.Parameters.Add("@AmendementNumber", SqlDbType.VarChar, 10).Value = Amendments_DDL.SelectedValueI assume that [year] is varchar in the table. Most likely it's Char 4, so use this then instead.