Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - problemi con DataGridView
Forum - C# / VB.NET - problemi con DataGridView

Avatar
spiderman (Normal User)
Newbie


Messaggi: 20
Iscritto: 18/06/2008

Segnala al moderatore
Postato alle 17:15
Mercoledì, 01/12/2010
salve,
Vi espongo il mio problema, programmando con visual basic 2008 e sqlserver 2005 sto facendo una form clienti, che ha diversi textbox, e da una con il nome "COGNOMETextBox" ha una datagridview con il nome "DataGridView1" che si apre in base alla ricerca del cognome tramite una querry con un LIKE, alla ricerca del cognome posso avere la possibilità di andare con la freccia in giù è poter selezionare il cognome che desidero (di conseguenza si aggiorna anche una datagridview con il nome "CLIENTIDataGridView" posta in basso alla form) alla pressione del tasto invio,
i dati relativo a quel cognome si dovrebbero posizionare nelle textbox relativi è questo non avviene.
Ed un altro errore che non sono riuscito a risolvere che in presenza di dati vuoti nella tabella del database mi dice 'Cast non valido dal tipo DBnull al tipo string'.
Mi date una mano cortesemente Vi sarò grato!
vi posto il codice:


Codice sorgente - presumibilmente VB.NET

  1. Private Sub COGNOMETextBox_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles COGNOMETextBox.KeyUp
  2.  
  3.  
  4. Dim Riga As DataGridViewRow
  5. Try
  6. If e.KeyCode = Keys.Escape Then
  7. DataGridView1.Visible = False
  8. Exit Sub
  9. End If
  10. If e.KeyCode = Keys.Enter Then
  11. Me.TAB1_CLIENTITableAdapter.Fill(Me.DataSet1.TAB1_CLIENTI)
  12. Riga = DataGridView1.CurrentRow()
  13. Me.COGNOMETextBox.Text = Riga.Cells(2).Value
  14.  
  15. DataGridView1.Visible = False
  16. Exit Sub
  17. End If
  18. If e.KeyCode = Keys.Down Then
  19. DataGridView1.Focus()
  20. Else
  21.  
  22. Me.TAB1CLIENTIBindingSource.Filter = "COGNOME LIKE '" & Replace(CStr(COGNOMETextBox.Text), "'", "''") & "%'"
  23. Me.TAB1CLIENTIBindingSource.Sort = "COGNOME Desc"
  24. DataGridView1.Visible = True
  25. End If
  26. Catch ex As Exception
  27. MessageBox.Show("Si è verificato il seguente errore: " & ex.Message, "Attenzione", MessageBoxButtons.OK)
  28. End Try
  29. End Sub
  30.  
  31. Private Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
  32. Dim Riga As DataGridViewRow
  33.  
  34. Try
  35. If e.KeyCode = Keys.Escape Then
  36. DataGridView1.Visible = False
  37. Exit Sub
  38. End If
  39. If e.KeyCode = Keys.Enter Then
  40. Me.TAB1_CLIENTITableAdapter.Fill(Me.DataSet1.TAB1_CLIENTI)
  41. Riga = DataGridView1.CurrentRow()
  42. Me.IDTextBox.Text = Riga.Cells(1).Value
  43. Me.COGNOMETextBox.Text = Riga.Cells(2).Value
  44. Me.NOMETextBox.Text = Riga.Cells(3).Value
  45. Me.DENOMINAZIONETextBox.Text = Riga.Cells(4).Value
  46. ' Me.INDIRIZZO_RESIDENZATextBox.Text = Riga.Cells(4).Value
  47.  
  48. DataGridView1.Visible = False
  49. Exit Sub
  50. End If
  51. If e.KeyCode = Keys.Down Then
  52. DataGridView1.Focus()
  53. Else
  54.  
  55. Me.TAB1CLIENTIBindingSource.Filter = "COGNOME LIKE '" & Replace(CStr(COGNOMETextBox.Text), "'", "''") & "%'"
  56. Me.TAB1CLIENTIBindingSource.Sort = "COGNOME Desc"
  57. DataGridView1.Visible = True
  58. End If
  59. Catch ex As Exception
  60. MessageBox.Show("Si è verificato il seguente errore: " & ex.Message, "Attenzione", MessageBoxButtons.OK)
  61. End Try
  62.  
  63.  
  64. End Sub


vi allego anche una immagine


spiderman ha allegato un file: Immagine bitmap.png (980054 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da spiderman il 01/12/2010 alle 17:20
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
-1
Down
V
Segnala al moderatore
Postato alle 10:32
Giovedì, 02/12/2010
Semplicemente non puoi stipare un dato ti tipo DBNull in un array di caratteri. Bisogna controllare prima che il campo non sia null, o alternativamente modificare il codice di design in modo che il valore restituito sia di tipo nullable (o semplicemente string in questo caso). Ecco un articolo a tal proposito:
http://dotnetlombardia.org/blogs/totem/archive/2010/11/06/ ...


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
spiderman (Normal User)
Newbie


Messaggi: 20
Iscritto: 18/06/2008

Up
-1
Down
V
Segnala al moderatore
Postato alle 9:44
Domenica, 05/12/2010
grazie totem per avermi risposto,
aspettavo a rispondere al messaggio per vedere se ci riuscivo ma mi sono accorto che ancora ho problemi, come dovvrei fare secondo te...

PM