ADICIONAR NUMEROS EM SEQUENCIA COM CONDICAO.

BRUNODOPREDIO 03/05/2011 14:49:26
#373096
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.
KIKO.WIZZ 03/05/2011 15:18:55
#373100
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]
BRUNODOPREDIO 03/05/2011 15:26:20
#373104
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.
BRUNODOPREDIO 04/05/2011 11:18:38
#373190
Alguém tem mais alguma idéia de como resolver este processo???



BRUNODOPREDIO 04/05/2011 14:03:37
#373199
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
BRUNODOPREDIO 05/05/2011 09:07:38
#373254
Citação:

:
Hum, pensei que fosse uma string, mas se é integer deve dar pra você fazer algo do tipo

If 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!!!!
Página 2 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas