View Full Version : Visual studio - windows form
Fabiro77
27-10-2015, 07:48
Buongiorno a tutti e complimenti per il bellissimo ed utile forum.
vorrei, se possibile, chiedere un aiuto in merito a quanto segue:
ho creato un piccolo programma con visual studio (windows form) con
- Form 1
- DatagridView
- TEXTBOX1
- button1
La datagridview è collegata ad un DB (infatti mi riporta il nome delle colonne della tabella interessata).
ho inserito il codice per il lancio della select (select * from FB.ROM_SERVICE where PRODUCT_ID = 'xxxx' )
Ho necessità di effetturare ricerche ( 'xxx' ) in base al valore inserito nella tecxtbox1.
al momento il programma restituisce l'errore ORA-01722 INVALID NUMBER
1) codice del BUTTON 1:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Me.SIT_SERVICETableAdapter.fabio(Me.DataSet1.SIT_SERVICE)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
2) istruzione sql :
SELECT SERVICE_ID, CIC, COD_TIPO, COD_NMU, DATA_ATT_PARTE, NUM_CONTRATTO, QUANTITA, PRODUCT_ID, LOCATION_ID, SERVICE_CODE, DESCRIZIONE,
DATA_CREAZIONE, NOME_FLUSSO, DATA_ULT_AGG_FLUSSO, CODICE, DATA_CES_PARTE
FROM FB.ROM_SERVICE
WHERE (PRODUCT_ID = ' & form1.TextBox1.Text & ')
Non so proprio come risolvere il problema.... :muro: :muro:
Vi chiedo un vostro prezioso aiuto.
Grazie di cuore..
Fabio
Tasslehoff
28-10-2015, 01:04
Premetto due cose
Non sono uno sviluppatore
Sei OT in questo sezione, sarebbe meglio postassi la tua richiesta nella sezione Programmazione (http://www.hwupgrade.it/forum/forumdisplay.php?f=38)
Imho l'errore consiste semplicemente nel fatto che tu stai ponendo la condizione di un campo numerico (PRODUCT_ID) come stringa di testo, tant'è che infatti passi il valore tra apici (WHERE PRODUCT_ID = ' & form1.TextBox1.Text & ', le parentesi non servono).
Il messaggio che Oracle ti restituisce è molto chiaro in proposito (http://www.orafaq.com/wiki/ORA-01722) (e questo oggettivamente è uno degli aspetti positivi di questo dbms).
Prova a far scrivere in output la query che stai lanciando e poi prova a togliere gli apici (es where PRODUCT_ID=10)
Fabiro77
28-10-2015, 07:04
Buongiorno e grazie di cuore..
ti ringrazio per le info e l'attenzione donatami.
In realtà se la seguente select con
WHERE (PRODUCT_ID = ' 1234567 ')
funziona.. ma io dovrei variare il valore del PRODUCT_ID inserendolo in una textbox in modo da avere risultati inerenti la ricerca.
L'errore è proprio che l valore inserito nella textbox è considerato NON numerico.. e non so come risolvere il problema :mc:
sembrerebbe una sciocchezza, ma io proprio non riesco :help:
Grazieeeeeeeeeeeeeeeeeeeeeee
Ribadendo che sei nella sezione errata, con quale linguaggio stai programmando?
C# ?
Forse dovresti prima convertire il testo in numero, e credo che quello che tu cerchi sia:
Int32.Parse(form1.TextBox1.Text)
Fabiro77
28-10-2015, 09:47
no no.. Visual basic
la stringa andrebbe inserita tra le istruzioni della textbox1?
Grazie mille
Scusa ma basi di programmazione ne hai o vai a caso?
Btw: http://stackoverflow.com/questions/7708838/how-do-i-convert-from-a-string-to-an-integer-in-visual-basic
Fabiro77
29-10-2015, 07:02
Buongiorno,
in realtà sono da poco alle prese con visual studio.. ho utilizzato un pochino il VBA per poi aver la pazza idea di cominciare con il vero VB.
Quello che chiedo, se possibile, è di avere un consiglio su come risolvere il problema.. spero di ricevere un vostro aiuto e sopratutto metterlo in pratica:
SELECT * FROM FB_SERVICE WHERE (PRODUCT_ID = '12345')
Ho "semplicemente" necessità di lanciare la query sostituendo il valore '12345' con il valore indicato nella textbox1 della form utilizzata.
Spero tanto in un vostro aiuto.
Grazie e scusate :muro:
SELECT * FROM FB_SERVICE WHERE (PRODUCT_ID = '12345')
Ho "semplicemente" necessità di lanciare la query sostituendo il valore '12345' con il valore indicato nella textbox1 della form utilizzata.
Il VB non lo conosco, ma in c# scriverei:
string var = textBox1.Text;
..
..SELECT * FROM FB_SERVICE WHERE (PRODUCT_ID = var)..
Cmq quella è una query sql se la devi virgolettare diventerebbe:
query= "SELECT * FROM FB_SERVICE WHERE (PRODUCT_ID = "+var")"
Spero di non aver scritto cavolate e di esserti stato d'aiuto almeno un pochino..
Fabiro77
29-10-2015, 09:06
Ciao,
ti ringraio infinitamente, ma credo che il linguaggio VB sia un pò diverso
GRAZIE PER LA DISPONIBILITA'. :ave:
Buongiorno,
in realtà sono da poco alle prese con visual studio.. ho utilizzato un pochino il VBA per poi aver la pazza idea di cominciare con il vero VB.
Quello che chiedo, se possibile, è di avere un consiglio su come risolvere il problema.. spero di ricevere un vostro aiuto e sopratutto metterlo in pratica:
SELECT * FROM FB_SERVICE WHERE (PRODUCT_ID = '12345')
Ho "semplicemente" necessità di lanciare la query sostituendo il valore '12345' con il valore indicato nella textbox1 della form utilizzata.
Spero tanto in un vostro aiuto.
Grazie e scusate :muro:
Scusa ma hai guardato il link che ti ho postato di SO?
Ziosilvio
29-10-2015, 22:41
Da Amministrazione e Configurazione Server sposto nella sezione corretta Programmazione.
Se posti uno screenshot del codice dovrebbe essere più semplice, nel caso di c# ma in vb dovrebbe essere simile verrebbe una cosa del genere
SELECT * FROM FB_SERVICE WHERE (PRODUCT_ID = '" + tuatextbox.Text + "')
Fabiro77
30-10-2015, 08:47
Ciao a tutti.. e scusate ma da novizio riesco a capire poco :doh:
nella form1 ho inserito un datagridview1, una textbox1 ed un button.
cliccando nell'angolino in alto a destra della datagridview, ho collegato il DB e cliccando su ADD QUERY, ho seguito il wizard inseriendo la query :
SELECT * FROM SIT_SERVICE WHERE (PRODUCT_ID = '12345')
Automaticamente visual studio ha creato nella form1 un SitserviceToolStrip con il bottoncino che esegue la query:
Private Sub SitserviceToolStripButton_Click(sender As Object, e As EventArgs) Handles SitserviceToolStripButton.Click
Try
Me.SIT_SERVICETableAdapter.Sitservice(Me.DataSet1.SIT_SERVICE)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
Cliccando sul bottone creato nella toolstrip, la select viene eseguita e la datagridview riporta correttamente i risultati.
Oltre questo non riesco ad andare.. E VI CHIEDO SCUSA :(
come posso modificare la query in modo che legga i dati dalla textbox1 e si esegua cliccando sul button1 ?
VI PREGO AIUTATEMI :mc: :confused:
Fabiro77
30-10-2015, 09:57
Ciao e grazie,
il codice usato è quello che ho postato... con indicazione dei passi fatti.
Ho provato in questo modo:
Select *
FROM SI.SIT_SERVICE
WHERE (PRODUCT_ID = ' & form1.TextBox1.Text & ')
ma mi torna errore ORA-10722: invalid numebr.
:doh: :doh: :doh: :doh:
Fabiro77
30-10-2015, 14:18
Ciao e grazie,
in realtà ho provato ad inserire il codice senza le (), ma in automatico visual studio corregge la riga:
WHERE (PRODUCT_ID = ' & form1.TextBox1.Text & ')
tale codice l'ho scritto così perche mi occorre che il dato scritto nella textbox1 sia compreso tra apici.
Quindi dovrei fare in modo che il PRODUCT_ID sia = a '+valore della textbox1+'
Il risultato è che il valore della textbox1 non è considerato numerico.
Credo che il problema sia questo :( :stordita: :cry:
Da Amministrazione e Configurazione Server sposto nella sezione corretta Programmazione.
Aveva già crosspostato...
CLOSED!!
>bYeZ<
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.