Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola Amigos
Tenho uma rotina onde preciso cadastrar os nome de empresas e associado a elas os nomes dos gerentes.Logo eu terei varias empresas, sendo que cada empresa tera no minimo 1 gerente.
Eu pretendia criar uma rotina parecida com um carrinho de compras, onde eu gravaria primeiro o ID da empresa e depois gravaria os gerentes numa tabela de relacionamento e associando-os ao ID da empresa.
Inclusive ja fiz o mesmo em outras rotinas.
O cadastro da empresa e do gerente dessa empresa acontece na mesma rotina.Informo a empresa e relaciono o gerente atraves de um GridView.
Nas rotinas que eu utilizei, eu tinha um cliente, as compras do cliente e os Produtos (ja cadastrados), portanto na hora de montar o DataTable eu criava uma chave de campo primario para o DataTable e atribuia a ele o ID do produto.
Acontece que nesse caso especifico eu nao tenho nenhum ID para relacionar como linha chave no meu DataTable.Uma vez que o unico ID que eu poderia utilizar que e o da empresa, somente sera gerado no momento da gravacao.
Eis uam demonstrcao do meu codigo, pulando algumas partes que nao interessm no momento :
Public Function ObterGerente() As DataSet
'cria dataset
Dim ds As DataSet = New DataSet()
'define um objeto DataColumn
Dim keys(1) As DataColumn
'define o campo que sera a chave primaria
Dim ItemID As New DataColumn("ItemID", GetType(Int32))
'cria o datatable
Dim dt As DataTable = New DataTable("Gerentes")
'inclua as colunas no datatable
dt.Columns.Add(ItemID)
'outra forma de definir e incluir colunas no datatable
dt.Columns.Add("CLIENTE_ID", System.Type.GetType("System.Double"), "")
dt.Columns.Add("GERENTE_NOME", System.Type.GetType("System.String"), "")
'define a chave primária
keys(0) = ItemID
dt.PrimaryKey = keys
'inclui na tabela
ds.Tables.Add(dt)
.
.
.
End Function
Private Sub IncluirGerente()
Try
'obtem a tabela do dataset e atribui ao datable local
Dim dt As DataTable = ObterGerente().Tables(0)
'localiza o codigo do produto na tabela
'Dim row As DataRow = dt.Rows.Find(Request.QueryString("FORMATO_ID"))
Dim row As DataRow = dt.Rows.Find(Aqui normalmente eu tenho um ID mas nesse caso Nao)
If row Is Nothing Then
'se nao achou cria uma nova linha
row = dt.NewRow()
row("itemID") = Convert.ToInt32(Session("ID_CLIENTE"))
row("Gerente_NOME") = TxtGerente.Text.Trim
'row("REL_VALOR") = Convert.ToDouble(TxtBeneficioValor.Text)
'inclui a linha no datable
dt.Rows.Add(row)
Else
'se a linha ja existir então apenas altera a quantidade
'Dim qtd As Integer = Convert.ToInt32(row("Quantidade"))
'qtd = qtd + quantidade
'row("Quantidade") = qtd
End If
Finally
conexao.Close()
End Try
End Sub
Poderiam me dar alguma sugestao.
Obrigado e um Abraco
Carregando comentários...