vasco16 Posted April 30, 2009 at 10:33 PM Report #260404 Posted April 30, 2009 at 10:33 PM boas pessoal quero que segundo um valor de uma combobox me abre uma outra com outros valores.. so que está a dar-me este erro: Erro de sintaxe (operador em falta) na expressão de consulta 'marca ='. e estou a usar este codigo: Private Sub ComboBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.GotFocus 'Retorna os nomes dos produtos da tabela produtos Dim strConn As New OleDb.OleDbConnection(Stand.My.Settings.ligacaoBD) strConn.Open() Dim DSet As New DataSet(), SQLStr As String Dim cmd As System.Data.OleDb.OleDbCommand Dim dbAdaptr As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter() 'cria o objeto datarow e datatable Dim tRow As DataRow, tTbl As DataTable 'intruções With dbAdaptr .TableMappings.Add("Table", "modelo") SQLStr = "Select modelo from modelo where marca = " + ComboBox1.Text + "" cmd = New System.Data.OleDb.OleDbCommand(SQLStr, strConn) cmd.CommandType = CommandType.Text .SelectCommand = cmd .Fill(DSet) .Dispose() End With DSet.AcceptChanges() tTbl = DSet.Tables.Item(0) DSet.Dispose() strConn.Close() ' preenche a combo combobox nomefornecedortextbox.Text = "" nomefornecedortextbox.Items.Clear() nomefornecedortextbox.BeginUpdate() ' carrega a combo com o nome dos fornecedores For Each tRow In tTbl.Rows ComboBox2.Items.Add(tRow("modelo").ToString) Next nomefornecedortextbox.EndUpdate() End Sub dá erro aqui: .Fill(DSet)
bruno1234 Posted April 30, 2009 at 11:16 PM Report #260416 Posted April 30, 2009 at 11:16 PM SQLStr = "Select modelo from modelo where marca = " + ComboBox1.Text + "" select modelo from modelo? Tens uma tabela com o nome do campo? Não te enganaste nesta linha? Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
vasco16 Posted April 30, 2009 at 11:25 PM Author Report #260419 Posted April 30, 2009 at 11:25 PM select modelo from modelo? Tens uma tabela com o nome do campo? Não te enganaste nesta linha? sim isso está certo..
vasco16 Posted April 30, 2009 at 11:57 PM Author Report #260427 Posted April 30, 2009 at 11:57 PM penso que o problema esteja na condição WHERE, por se nao mete condição ele apresenta-me os dados..
jpaulino Posted May 1, 2009 at 12:08 AM Report #260433 Posted May 1, 2009 at 12:08 AM penso que o problema esteja na condição WHERE, por se nao mete condição ele apresenta-me os dados.. Então e se substituires o + por & ? Além disso se o marca for uma string dever fazer: SQLStr = "Select modelo from modelo where marca = '" & ComboBox1.Text & "'"
vasco16 Posted May 1, 2009 at 07:33 AM Author Report #260466 Posted May 1, 2009 at 07:33 AM Então e se substituires o + por & ? Além disso se o marca for uma string dever fazer: SQLStr = "Select modelo from modelo where marca = '" & ComboBox1.Text & "'" da erro: Não foi fornecido nenhum valor para um ou mais parâmetros necessários. é de referir que o valor que estou a avaliar é da minha form e está numa combobox
jpaulino Posted May 1, 2009 at 08:09 PM Report #260639 Posted May 1, 2009 at 08:09 PM da erro: Não foi fornecido nenhum valor para um ou mais parâmetros necessários. é de referir que o valor que estou a avaliar é da minha form e está numa combobox Qual é o resultado de ComboBox1.Text ?
vasco16 Posted May 1, 2009 at 08:12 PM Author Report #260641 Posted May 1, 2009 at 08:12 PM Qual é o resultado de ComboBox1.Text ? um valor de uma tabela, neste caso texto
bruno1234 Posted May 1, 2009 at 08:13 PM Report #260642 Posted May 1, 2009 at 08:13 PM Vê em debug o valor em si mesmo. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
vasco16 Posted May 1, 2009 at 08:20 PM Author Report #260647 Posted May 1, 2009 at 08:20 PM Vê em debug o valor em si mesmo. Não foi fornecido nenhum valor para um ou mais parâmetros necessários. isso?
bruno1234 Posted May 1, 2009 at 08:23 PM Report #260649 Posted May 1, 2009 at 08:23 PM Não, no Visual Studio mete um break point na linha a seguir a essa e faz Debug (F5). Depois quando a execução parar no break point aponta para ComboBox1.Text para veres qual é o valor q tem. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
jpaulino Posted May 1, 2009 at 08:29 PM Report #260652 Posted May 1, 2009 at 08:29 PM Não, no Visual Studio mete um break point na linha a seguir a essa e faz Debug (F5). Depois quando a execução parar no break point aponta para ComboBox1.Text para veres qual é o valor q tem. Ou então um Debug.Writeline(ComboBox1.Text) ou Msgbox ... também dá para ver 😁
vasco16 Posted May 1, 2009 at 08:43 PM Author Report #260654 Posted May 1, 2009 at 08:43 PM Ou então um Debug.Writeline(ComboBox1.Text) ou Msgbox ... também dá para ver 😁 tem "fiat" que é o valor que selecionei na combobox anterior
jpaulino Posted May 1, 2009 at 11:23 PM Report #260678 Posted May 1, 2009 at 11:23 PM tem "fiat" que é o valor que selecionei na combobox anterior Mostra lá o código como está ?
vasco16 Posted May 2, 2009 at 08:35 AM Author Report #260703 Posted May 2, 2009 at 08:35 AM Private Sub ComboBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.GotFocus 'Retorna os nomes dos produtos da tabela produtos Dim strConn As New OleDb.OleDbConnection(Stand.My.Settings.ligacaoBD) strConn.Open() Dim DSet As New DataSet(), SQLStr As String Dim cmd As System.Data.OleDb.OleDbCommand Dim dbAdaptr As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter() 'cria o objeto datarow e datatable Dim tRow As DataRow, tTbl As DataTable 'intruções With dbAdaptr .TableMappings.Add("Table", "modelo") SQLStr = "Select modelo from modelo where marca = " + ComboBox1.Text + "" cmd = New System.Data.OleDb.OleDbCommand(SQLStr, strConn) cmd.CommandType = CommandType.Text .SelectCommand = cmd .Fill(DSet) .Dispose() End With DSet.AcceptChanges() tTbl = DSet.Tables.Item(0) DSet.Dispose() strConn.Close() ' preenche a combo combobox nomefornecedortextbox.Text = "" nomefornecedortextbox.Items.Clear() nomefornecedortextbox.BeginUpdate() ' carrega a combo com o nome dos fornecedores For Each tRow In tTbl.Rows ComboBox2.Items.Add(tRow("modelo").ToString) Next nomefornecedortextbox.EndUpdate() End Sub
jpaulino Posted May 2, 2009 at 08:53 AM Report #260704 Posted May 2, 2009 at 08:53 AM Porque estás a utilizar no evento GotFocus ? Já te disse mais do que uma vez que isto está mal: SQLStr = "Select modelo from modelo where marca = " + ComboBox1.Text + ""
vasco16 Posted May 2, 2009 at 09:19 AM Author Report #260705 Posted May 2, 2009 at 09:19 AM Porque estás a utilizar no evento GotFocus ? Já te disse mais do que uma vez que isto está mal: SQLStr = "Select modelo from modelo where marca = " + ComboBox1.Text + "" com & combobo1.text & fica igual.. já agora qual é a diferente entre & e +?
jpaulino Posted May 2, 2009 at 09:22 AM Report #260706 Posted May 2, 2009 at 09:22 AM com & combobo1.text & fica igual.. já agora qual é a diferente entre & e +? Não é so mudar o operador ... existem também as plicas porque estás a utilizar uma string na instrução e não um número: SQLStr = "Select modelo from modelo where marca = '" & ComboBox1.Text & "'" O operador para concatenar strings em vb.net é o & e não o +. O + funciona na maioria dos casos mas não em todos.
vasco16 Posted May 2, 2009 at 09:40 AM Author Report #260707 Posted May 2, 2009 at 09:40 AM Não é so mudar o operador ... existem também as plicas porque estás a utilizar uma string na instrução e não um número: SQLStr = "Select modelo from modelo where marca = '" & ComboBox1.Text & "'" O operador para concatenar strings em vb.net é o & e não o +. O + funciona na maioria dos casos mas não em todos. olha tive a pesquisar e resolvi o problema assim: SQLStr = "Select modelo from marcamodelo where marca like '" + marcacombo.Text + "%'" mas estou com o problema de estar sempre a ir buscar os valores, no gotfocus quando ganha focus vai buscar no click a mesma coisa..
jpaulino Posted May 2, 2009 at 02:25 PM Report #260781 Posted May 2, 2009 at 02:25 PM olha tive a pesquisar e resolvi o problema assim: Tu insistes em usar o +, mas ok quando tivere problemas depois logo vês. Se explicasses a situação já tinhas o problema resolvido à muito tempo ... porque não dissestes que na base de dados está fiat + qualquer coisa ? Porque usas o gotfocus ? Devias carregar quando no evento selectedindexchanged da marcacombo.
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