ADICIONAR NUMEROS EM SEQUENCIA COM CONDICAO.
Citação::
Outra opção:
[txt-color=#0000f0]
If testacli = [Ô]Fornecedor[Ô] Then
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote [txt-size=1] WHERE Left(NumeroLote,1)=1 Select l.NumeroLote).Max + 1
Else
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote WHERE Left(NumeroLote,1)=5 Select l.NumeroLote).Max + 1
End If[/txt-color]
Que banco de daos é esse que vc está usando?
Não funciona por que ele fala que o left não funciona para integer, que é o que retorna meu select.
uso sqlserver 2008
já tentei um l.numeroLote.tostring.starswith e mesmo assim informa erro.
tah tenso.
[txt-color=#0000f0]If testacli = [Ô]Fornecedor[Ô] Then
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote [txt-size=1] WHERE Left(Convert(varchar(20),NumeroLote),1)=1 Select l.NumeroLote).Max + 1
Else
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote WHERE Left(Convert(varchar(20),NumeroLote),1)=5 Select l.NumeroLote).Max + 1
End If[/txt-color]
Citação::
Tenta converter o inteiro:
[txt-color=#0000f0]If testacli = [Ô]Fornecedor[Ô] Then
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote [txt-size=1] WHERE Left(Convert(varchar(20),NumeroLote),1)=1 Select l.NumeroLote).Max + 1
Else
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote WHERE Left(Convert(varchar(20),NumeroLote),1)=5 Select l.NumeroLote).Max + 1
End If[/txt-color]
Então esse convert varchar (20) eh comando sql.......aqui não aceita.........já tem o tostring para isso.....mas mesmo com o tostring não tá funcionando.
Citação::
Tente assim:If testacli = [Ô]Fornecedor[Ô] Then
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote.StartsWith([Ô]1[Ô]) Select l.NumeroLote).Max + 1
Else
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote.StartsWith([Ô]5[Ô]) Select l.NumeroLote).Max + 1
End If
não dá por que o startswith não funciona com o tipo integer..... queria transformar pra toString... mas ele não deixa também........
|Tensoooo
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote.toString.StartsWith([Ô]1[Ô]) Select l.NumeroLote).Max + 1
Citação::
Hum, pensei que fosse uma string, mas se é integer deve dar pra você fazer algo do tipoIf testacli = [Ô]Fornecedor[Ô] Then
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote < 5000000 Select l.NumeroLote).Max + 1
Else
strNumLote = (From l In Ent.Entities.LOTE Where l.NumeroLote > 5000000 Select l.NumeroLote).Max + 1
End If
Não é uma má idéia, por momento me serve....srsrsrr
só mudar o else para >= 5000000
Valeu!!!!!
Encerrendo o tópico com a sua ajuda!!!!