Pesquisa no MySQL - C#

Tenho uma tabela com um campo VARCHAR e eu quero gerar o valor desse campo…
No caso o valor desse campo seria V1, V2, V3, V4…e assim por diante…
Dei um select para recuperar o valor maximo dos valores já inserido no campo : "select max(campo) from tabela"
E para inserir o novo código fiz o seguinte:

int novocod; if(ultimo.Equals("0")) { novocod = 1; } else { int RestoPalavra = Convert.ToInt16(ultimo.Substring(1)); novocod = RestoPalavra + 1; } codvendaTextBox.Text = "V"+novocod;

Essa variavel ultimo seria o resultado da select, no caso fiz o if comparando se ela é = 0 para não dar erro na primeira vez que inserido…
Vamos ao problema em si:
Quando o valor chega a V10, ele nao retorna o V10 como máximo, ele ta retornando o V9…
Acho que é porque é um valor string e não um valor númerico…
Como corrigir esse erro?

Fazendo direito?

Por que esse campo é VARCHAR?

pois precivo que tenha o V no campo…
nao estou pedindo código pronto, só uma noçao de como resolver…

[quote=Rodrigo1895]pois precivo que tenha o V no campo…
nao estou pedindo código pronto, só uma noçao de como resolver…[/quote]
O V poderia ser uma formatacao na hora de exibir, nao precisa guardar isso no mesmo campo. Se tiver mais de uma letra grave em outro campo.