beto_88 Posted April 23, 2009 at 02:39 PM Report #258597 Posted April 23, 2009 at 02:39 PM tenho aqui um problema com o codigo que nao me está a funcionar correctamente . o que isto é para fazer é mostrar no ID_cao apenas os caes que nao estao adoptados mas aparecem todos Se alguem me conseguir ajudar era muito bom 😛 TextBox1.Text = ID_caoComboBox.SelectedValue TextBox2.Text = ID_clienteComboBox.SelectedValue DataGridView2.Visible = False Try Dim lm As String = "INSERT INTO `Adopcao` ( `ID_cao`, `ID_cliente`) VALUES ( ?, ?)" ' Inicia uma ligação à base de dados Using connection As New OleDbConnection(pap2.My.Settings.LigacaoBD) ' Define o comando e os parâmetros Dim command As New OleDbCommand(lm, connection) 'pergunta se quer guardar ou nao Dim msg = MsgBox("Pretende guardar o registo? ", MsgBoxStyle.YesNo, "") If msg = MsgBoxResult.Yes Then command.Parameters.Add("ID_cao", OleDbType.VarChar).Value = TextBox1.Text() command.Parameters.Add("ID_cliente", OleDbType.VarChar).Value = TextBox2.Text() ElseIf msg = MsgBoxResult.No Then Exit Sub End If ' Abre a ligação e insere o registo connection.Open() Dim x As Integer = command.ExecuteNonQuery() If x <> 1 Then Throw New ArgumentException("Não foi possível inserir o registo na base de dados!", "") End If End Using Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try DataGridView2.Visible = True ' O PROVIDER... É COPIAR A CONNECTIONSTRING DA LIGAÇÃO DA BD, NA JANELA PROPIEDADES Dim db As New OleDbConnection(pap2.My.Settings.LigacaoBD) ' LIGAR A BD db.Open() ' PERGUNTAR QUAIS OS DADOS A PROCURAR ' ' ' ' ACESSO AOS DADOS 'Dim comandosql = "Select ID_adopcao, ID_cao, ID_cliente from Adopcao " Dim comandosql = "SELECT * from caes where id_cao not in (select id_cao from adopcao) ;" Dim cmd As New OleDbCommand(comandosql, db) Dim dtr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection) ' CRIAÇÃO DE COLUNAS NO DATAGRIDVIEW Dim num_campos As Integer Dim campo As String DataGridView2.Columns.Clear() num_campos = dtr.FieldCount For idx = 0 To num_campos - 1 campo = dtr.GetName(idx) DataGridView2.Columns.Add(campo, campo) Next ' CARREGAR OS DADOS Dim idx_linha As Integer idx_linha = 0 While dtr.Read() Dim linha As New DataGridViewRow() DataGridView2.Rows.Add(linha) DataGridView2.Rows(idx_linha).Cells(0).Value = dtr.Item(0) DataGridView2.Rows(idx_linha).Cells(1).Value = RTrim(dtr.Item(1)) DataGridView2.Rows(idx_linha).Cells(2).Value = RTrim(dtr.Item(2)) idx_linha = idx_linha + 1 End While ' AJUSTE DAS COLUNAS DO DATAGRIDVIEW DataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells Button2.Visible = True dtr.Close()
pebat Posted April 23, 2009 at 02:40 PM Report #258598 Posted April 23, 2009 at 02:40 PM Nao precebi bem a tua duvida... podias se mais explicito sff.
beto_88 Posted April 23, 2009 at 02:54 PM Author Report #258600 Posted April 23, 2009 at 02:54 PM http://img246.imageshack.us/img246/739/adopcao.png ai se vires na imagem na dataGrid está só um cao porque é o unico que não se encontra adoptado mas depois na ID_caoComboBox aparece oque não está adoptado e oque está adoptado e o objectivo é ficar apenas os que ainda não foram adoptados espero que tenha esplicado de forma a perceberes
passado Posted April 23, 2009 at 02:58 PM Report #258602 Posted April 23, 2009 at 02:58 PM http://img246.imageshack.us/img246/739/adopcao.png ai se vires na imagem na dataGrid está só um cao porque é o unico que não se encontra adoptado mas depois na ID_caoComboBox aparece oque não está adoptado e oque está adoptado e o objectivo é ficar apenas os que ainda não foram adoptados espero que tenha esplicado de forma a perceberes Penso que tens a combobox a ir buscar os dados directamente as tabelas de todos os caes e nao a essa tabela onde estao os caes nao adoptados
debliu Posted April 23, 2009 at 03:10 PM Report #258610 Posted April 23, 2009 at 03:10 PM Entao e nao podes meter uma campo na tabela chamado adoptado (Sim ou Nao)? depois fazias um select ID_Cao Where Adoptado = Nao e mostravas os resultados na combo box http://bolachas4.blogspot.com
beto_88 Posted April 23, 2009 at 03:19 PM Author Report #258619 Posted April 23, 2009 at 03:19 PM Entao e nao podes meter uma campo na tabela chamado adoptado (Sim ou Nao)? depois fazias um select ID_Cao Where Adoptado = Nao e mostravas os resultados na combo box -------------------------------------------- Nao porque ja nao posso acrescentar mais nenhum campo na tabela senao vai dar barraca e tamem ja tou mesmo no final da pap so me falta mesmo isto que nao me esta a funcionar
Weasel Posted April 23, 2009 at 03:22 PM Report #258620 Posted April 23, 2009 at 03:22 PM Tu nesse código não mostras o código que está a preencher a ComboBox Knowledge to the masses
beto_88 Posted April 23, 2009 at 03:37 PM Author Report #258626 Posted April 23, 2009 at 03:37 PM Isto é o form dos caes ai tao os dois caes o adoptado e o nao adoptado o adoptado é o do ID -> 14 http://img260.imageshack.us/img260/3671/formcaes.png --------------------------------------------------------------------------------------------------------- Com este codigo era para tar a aparecer aqui neste form em baixo ai na comboBOX do ID_cao apenas o outro cao e nao esse do ID -> 14 Como aqui podem ver o cao adoptado esta na dataGrid dos caes que foram adoptados http://img260.imageshack.us/img260/9586/82257132.png so que se eu meter outro codigo que ja tive mas o meu professor disse para meter este k meti ai ao principio, porque o primeiro que tinha ao seleccionar o ID_cao e o ID_cliente ao gravar apagava o cao e o cliente da base de dados ou seja tamem apagava da DataGrid dos Caes que foram adoptados e ai nao devia apagar devia sim apagar so na form dos caes porque a DataGrid das adopcoes é pa ficar la registado para saber os caes que foram adoptados
pebat Posted April 23, 2009 at 04:50 PM Report #258645 Posted April 23, 2009 at 04:50 PM Ja precebi o que queres.. mas podes-me mostrar o codigo que estas a usar no combox para eu ver, onde e que estas a fazer mal, e q tens td bem pelo o que precebi mas so na combox e que tens esse problema que ele esta a mostrar os resoltados todos certo ? outra coisa como e que tu sabes que e adoptado ou nao adoptado ^???
beto_88 Posted April 23, 2009 at 05:31 PM Author Report #258657 Posted April 23, 2009 at 05:31 PM eu na tenho nenhum codigo na ComboBox o unico codigo que tenho e aquele que inseri aqui a em cima eu tive a fazer isso com o meu prof e ele na me disse nada de meter codigo na comboBox eu nao sei se e adoptado ou nao .... eu adiciono caes e os clientes e depois na adopcao so o que faco é seleccionar o cao e o cliente que o vai adoptar e guardo depois carrego no botao "DAR PARA ADOPCAO" e só ai é que depois sei que esse cao ja foi adoptado porque vai aparecer na dataGrid onde está ai o ID_adopcao, ID_cliente e ID_cao... eu na comboBOX ID_cao e ID_cliente tenho ai pa aparecer como nome mas depois vai guardar com o numero isso de aparecer o nome é só para facilitar, para assim saber qual é o cao que vou seleccionar
pebat Posted April 23, 2009 at 05:47 PM Report #258665 Posted April 23, 2009 at 05:47 PM entao como e que queres que so apareca la o cao adoptado se nao tens essa informaçao guardada em lado nemhum... sabes pk aparece na datagrid boa mas a combox e outra cena diferente... outro controlo outra estrutura... tem que ir buscar essa informaçao a alguma lado... assim nao vais la
beto_88 Posted April 23, 2009 at 08:20 PM Author Report #258706 Posted April 23, 2009 at 08:20 PM nao eu axo que nao é preciso codigo na comboBox para isto da adopcao tem que ter codigo da comboBox mas nao dentro da comboBox
passado Posted April 23, 2009 at 08:23 PM Report #258708 Posted April 23, 2009 at 08:23 PM nao eu axo que nao é preciso codigo na comboBox para isto da adopcao tem que ter codigo da comboBox mas nao dentro da comboBox Tens de ter um codigo que diga onde vai buscar os dados e que dados, podes fazer isso atravez do wizard
pebat Posted April 23, 2009 at 09:12 PM Report #258719 Posted April 23, 2009 at 09:12 PM nao eu axo que nao é preciso codigo na comboBox para isto da adopcao tem que ter codigo da comboBox mas nao dentro da comboBox mas tens smp que especificar que dados e que queres que apareçam senao ele nao advinha... no meu ver isso resolvia-se todo com um cado sim/nao.. um select campo form tabela where campo = falso e dava adoptação, oh entao algum elemento do tipo variavel ou msm um dataset da datagrid que e criada com os caes adoptados ou nao... passase esse resoltado dos nome para a combo so assim e que es capaz de diferenciar os dados que la inseres.... Isto no meu ver ... se tiver mal digam
beto_88 Posted April 23, 2009 at 10:18 PM Author Report #258735 Posted April 23, 2009 at 10:18 PM Dim comandosql = "SELECT ID_cao from Caes where ID_cao NOT IN (SELECT ID_cao From Adopcao) ;" axas que assim este select dá Acerca disso do DataSet podes explicar melhor o que isso vai fazer ou como faco isso B)
nokPT Posted April 23, 2009 at 10:26 PM Report #258741 Posted April 23, 2009 at 10:26 PM Um truque que dá muito jeito mesmo com bases de dados em SQL Usas o Access para ver os dados da base de dados(tabelas), e na parte dos querys (em edição sql) metes a string SQL, depois passas para tabela (carregas no icon) e tens o resultado da string. Já me ajudou muito Ricardo Timóteo
beto_88 Posted April 23, 2009 at 10:39 PM Author Report #258745 Posted April 23, 2009 at 10:39 PM Um truque que dá muito jeito mesmo com bases de dados em SQLUsas o Access para ver os dados da base de dados(tabelas), e na parte dos querys (em edição sql) metes a string SQL, depois passas para tabela (carregas no icon) e tens o resultado da string. Já me ajudou muito Desculpa a ignorancia podes expplicar melhor B)
nokPT Posted April 24, 2009 at 08:54 AM Report #258773 Posted April 24, 2009 at 08:54 AM Que tipo de base de dados estás a usar? Se for access é directo, se for SQL tens que criar um projecto no access a partir de uma base de dados existente, neste caso se a versão do sql e do access forem diferentes poderás ter que a base de lados só para o access no momento que crias o projecto. A partir deste momento, podes consultar e editar os dados da Tabelas, com mais facilidade que no SQL Express. E podes ir a Consultas (ou querys), criar um consulta nova e fazer as ligações de tabela em tabela, tal como já vi noutro tópico teu. O meu access é 2003, pelo que pode ser diferente do teu, mas no meu caso na barra de icons, por baixo do menu, do lado esquerdo (há esquerda do gravar) tem um icon com uma setinha para baixo, ao carregares aí aparece um sub-menu onde podes ver: "Vista de SQL", carregas aí e editas a consulta, ou acrescentar o teu código, depois no mesmo icon carregas para "Vista em Folha de Dados" e aparece o resultado da tua consulta. Ricardo Timóteo
beto_88 Posted April 24, 2009 at 09:20 AM Author Report #258777 Posted April 24, 2009 at 09:20 AM sim o meu e' o ACESS 2007 mas eu grao osprojectos cpmo 2003 e o meu tamem tem a vista SQL e assim
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now