Sequencia com os mesmos numeros usando CSHARP e sqlserver 2012
19/11/2015
0
Criei uma BANCO chamado BDCAD com 4 Tables vai ter 2 Relacionamentos entre ORDEM e PRODUTOS
CREATE TABLE TBprouct(
IDPRODUCT INT PRIMARY KEY identity (1,1),
DESCRI VARCHAR(50) NULL,
PRICE DECIMAL(10,2) NOT NULL,
AMOUNT INT NOT NULL,
DATEOUT VARCHAR(10) NULL,
)
CREATE TABLE TBorder(
IDORDER INT PRIMARY KEY identity (1,1),
SO VARCHAR (4) NOT NULL,
ORDERNO INT NOT NULL REFERENCES TBprouct(IDPRODUCT)
)
Já no C# fiz os Forms com os Campos, na minha Lógica vou preencher o PRODUTO e Depois coloca uma ORDER e o ORDERNO vai relacionar com o ID do Produto para que eu possa fazer depois um FORM de SELECT´s até mesmo para Praticar.
mas ai que vem o problema, que dentro do meu Humilde conhecimento não consigo sair deste ponto, quando eu coloco os Inserts no Comando do SQL da certo, mas
quando eu coloco pelo C# da erro pelo que eu Entendi não segue as sequencias corretas pois o ID do Produto é IDENTITY registrando na sequencia 1,2,3...
e o ORDERNO registra de outra forma que não consigo enchergar no C# .
Vi em uns foruns que só pode um IDENTITY por Table tirei o do ID da Order e coloquei no ORDERNO mas sem sucesso.
Tambem criei um campo no C# para gerar o ORDERNO deixei como propriedade READYONLY = TRUE mas tambem sem sucesso.
Se alguem me ajudar vou agradecer muito galera, abraço..
Bruno Souza
Posts
19/11/2015
Marcos P
Já as chaves estrangeiras, que devem estar relacionadas as chaves primárias nas tabelas de origem, devem ser inseridas normalmente.
Se você necessita incluir um item na tabela principal, para depois usar a chave gerada como referência nas demais tabelas ( como em um mestre-detalhe ), você deve capturar o IDENTITY gerado na tabela principal, para, na sequencia, montar os inserts das outras tabelas, passando esse valor de maneira fixa ( justamente a FK )...
Ficou meio confuso essa explicação, mas acho que dá pra entender.
19/11/2015
Bruno Souza
20/11/2015
Marcos P
Depois de gerado, esse valor deve ser recuperado e atualizado nas tabelas relacionadas como FK.
Tabela Principal ID* Descricao Data ---- --------------- ------------ 1 AAA 01/01/01 2 BBB 02/02/02 3 CCC 03/03/03 : : : 1475 FGT 05/08/12 << Aqui ocorre o insert na tabela principal ( IDENTITY + PK )* ---------------------------------- Tabela Relacionada ID* ID_Princ Descricao ----- -------- -------------------- 1 2 Bolacha Maria 2 5 Bolacha Água e Sal 3 1 Biscoito de Polvilho : : : 23541 1475 Outra Bolacha ------------------------------------ ( IDENTITY + PK )*
No exemplo acima, quando você gera o IDENTITY 1475 na tabela principal ( de pedido, por exemplo ), é essa chave que deve inserir como FK na tabela relacionada ( de Itens, nesse caso ), que também tem seu IDENTITY ( para fins de controle ).
Repare que ambas tem seus respectivos sequenciais, pois tanto pedidos, quanto itens devem ter linhas únicas com características próprias.
20/11/2015
Bruno Souza
CREATE TABLE TBprouct( ---> //tabela Produto//
IDPRODUCT INT PRIMARY KEY identity (1,1),
DESCRI VARCHAR(50) NULL,
PRICE DECIMAL(10,2) NOT NULL,
AMOUNT INT NOT NULL,
DATEOUT VARCHAR(10) NULL,
)
CREATE TABLE TBorder( ---> //tabela Ordem//
IDORDER INT NOT NULL PRIMARY KEY identity REFERENCES TBprouct(IDPRODUCT),
SO VARCHAR (4) NOT NULL,
)
Agora faz o Vinculo inserindo os dados Pelo C#
SELECT SO, DESCRI, DATEOUT FROM TBorder, TBprouct WHERE TBorder.IDORDER = TBprouct.IDPRODUCT
SO DESCRI DATEOUT
1 SO08 TESTE 12/03/2013
2 SO09 TESTE2222 12/03/2013
3 SO10 TESTE000 01/01/2013
4 SO10 SOFT 01/01/2013
5 SO10 SOFT ACESS 01/01/2010
Agora preciso terminar o Login e mais alguns outros problemas no sistema mas ta Rolando...
Vlw Marcos...
Clique aqui para fazer login e interagir na Comunidade :)