Jump to content


Aspyr

Member Since 19/05/2005
Offline Last Active 04/04/2010, 18:00
-----

Topics I've Started

Relação Composta Na Gridview

03/04/2010, 11:22

Oi, eu preciso fazer um trabalho pra faculdade com algumas especificações, e preciso de algumas dicas.

No trabalho, eu tenho que criar um banco de dados access e um website com asp.net, bem simples, mas tem uma coisa que está complicando. Eu preciso ter duas gridviews em uma página, uma é a gridview produtos, e a outra é a fornecedores, um produto pode ter infinitos fornecedores, e um fornecedor pode fornecer infinitos produtos. Eu tinha começado com apenas 2 tabelas no banco, mas isso criava uma relação 1 pra N onde um fornecedor só fornecia um produto. Até aí, dava pra eu selecionar o produto na gridview e listar os fornecedores na segunda gridview usando o WHERE, mas como eu preciso de uma relação N pra N, eu criei outra tabela pra relacionar as duas, ela tem o código do fornecedor e o código do produto, só que agora com a tabela corrigida, eu não sei como selecionar um produto e pegar todos os fornecedores já que agora tem uma tabela intermediária, não sei se deu pra entender, mas eu to anexando a imagem da tabela.

Attached File  relacao.gif   10.16KB   2 downloads

Resumindo, eu preciso selecionar um produto na primeira gridview e exibir todos os fornecedores dele na segunda gridview permitindo que um fornecedor forneça mais de um produto e que um produto tenha mais de um fornecedor.

Obrigado.

Datarows No Vb.net

06/10/2009, 01:24

Eu estou desenvolvendo um projeto para o meu curso e utilizo DataRow para alterar alguns dados na tabela, mas não consigo alterar vários dados de uma vez. Eu estou usando DataRows de um exemplo que vi, mas não sei se entendi o conceito muito bem. Esse é o único método que funciona, não consigo adicionar usando formas mais comuns o tipo de dados que pretendo colocar na tabela.

Esse é o código:

Dim cn As New MySqlConnection("Database=" + Nome_banco + ";Data Source=" + ip_banco + ";User Id=" + usuario_banco + ";Password=" + senha_banco)
		Dim da As New MySqlDataAdapter("SELECT * FROM " & strTabela, cn)

		da.InsertCommand = New MySqlCommand(strSql, cn)
		da.InsertCommand.CommandType = CommandType.Text

		Dim dsTabela As DataSet = New DataSet
		Dim newrow As DataRow

		cn.Open()
		da.Fill(dsTabela, strTabela)
		cn.Close()

		newrow = dsTabela.Tables.Item(strTabela).NewRow()

		Select Case strTabela 'Identifica a tabela
			Case "tblCondomino"

				da.InsertCommand.Parameters.Add("?template1", MySqlDbType.Binary, algoritimo1.Size, "AlgCondomino1")
				da.InsertCommand.Parameters.Add("?template2", MySqlDbType.Binary, algoritimo2.Size, "AlgCondomino2")
				da.InsertCommand.Parameters.Add("?template3", MySqlDbType.Binary, algoritimo3.Size, "AlgCondomino3")
				da.InsertCommand.Parameters.Add("?templateE1", MySqlDbType.Binary, algoritimo4.Size, "AlgCondominoE1")
				da.InsertCommand.Parameters.Add("?templateE2", MySqlDbType.Binary, algoritimo5.Size, "AlgCondominoE2")
				da.InsertCommand.Parameters.Add("?templateE3", MySqlDbType.Binary, algoritimo6.Size, "AlgCondominoE3")

				newrow("AlgCondomino1") = algoritimo1.tpt
				newrow("AlgCondomino2") = algoritimo2.tpt
				newrow("AlgCondomino3") = algoritimo3.tpt
				newrow("AlgCondominoE1") = algoritimo4.tpt
				newrow("AlgCondominoE2") = algoritimo5.tpt
				newrow("AlgCondominoE3") = algoritimo6.tpt

				dsTabela.Tables.Item(strTabela).Rows.Add(newrow)

				cn.Open()
				da.Update(dsTabela.Tables(strTabela))
				cn.Close()

		End Select

é uma função, então vários parametros serão definidos depois, não dá nenhum erro ao compilar, oq acontece é que o código só salva na tabela o ultimo algoritimo que ele pega (algoritimo6.tpt), ele só salva o ultimo no banco, aparentemente ele salva no banco o mesmo algoritimo em todos os campos, sei disso já que a checagem é baseada só no primeiro (e quando coloco ultimo numero ele reconhece). Se tiver faltado alguma informação é só falar : )

Obrigado

IPB Skin By Virteq