Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema database (stampa e ricerca)
Forum - C# / VB.NET - Problema database (stampa e ricerca)

Avatar
Pinnolo (Normal User)
Rookie


Messaggi: 28
Iscritto: 15/03/2008

Segnala al moderatore
Postato alle 14:53
Venerdì, 31/10/2008
Dopo aver risolto il problema dell' altro topic, sorgono ora due nuovi inceppi dovuti non a errori di sintassi, bensì alla mia ignoranza sul campo.
Vorrei infatti che attraverso la pressione di un tasto il programma mi stampi il datagrid che visualizza i dati di un database.

Allo stesso modo vorrei implementare nel programma una funzione di ricerca (che cerchi stringhe nel database)

Vi prego di aiutarmi. Grazie in anticipo.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:40
Sabato, 01/11/2008
Per stampare il datagrid devi sporcarti le mani. Ossia devi eseguire tu tutti i calcoli relativi alle posizioni delle celle sul foglio, e stamparle usando un oggetto Graphics:
http://totem.altervista.org/guida/versione2/C11.php
http://totem.altervista.org/guida/versione2/C12.php
Un'alternativa è trasferire il DataGrid su un file di testo normalissimo e stampare il file di testo con:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim P As New Process
  2. P.StartInfo.FileName = "file"
  3. P.StartInfo.Verb = "Print"
  4. P.Start()



La funzione di ricerca mi sembra abbastanza banale: basta ciclare nel datagrid con due for (uno sulle righe, uno sulle colonne) e controllare il contenuto di ogni cella.

PM Quote
Avatar
Pinnolo (Normal User)
Rookie


Messaggi: 28
Iscritto: 15/03/2008

Segnala al moderatore
Postato alle 11:43
Sabato, 01/11/2008
tu sei molto esperto, ma io no per cui ti pregherei, se puoi, di spiegarti con parole più povere...

come faccio a copiare il datagrid in un documento di testo?

Ultima modifica effettuata da Pinnolo il 01/11/2008 alle 11:48
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:07
Domenica, 02/11/2008
Beh... prendi la prima cella della prima riga e la scrivi; perndi le seconda della prima riga e la scrivi; prendi la terza e la scrivi; e ripeti tutto per tutte le righe.
Codice sorgente - presumibilmente VB.NET

  1. For I As Int32 = 0 To DataGrid.Rows.Count - 1
  2.   For J As Int32 = 0 To DataGrid.Columns.Count - 1
  3.     File.Write(DataGrid.Rows(I).Cells(J).Value & " ")
  4.   Next
  5.   File.WriteLine()
  6. Next


Ma questo è il metodo meno bello, perchè devi chiedere all'utente di impostare come carattere del notepad un font a spaziatura fissa (come Courier New o Lucida Console), poiché altrimenti i valori verrebbero tutti sfasati. E poi ti devi anche calcolare la lunghezza da far occupare ad ogni valore, per farli stare uno sotto all'altro rispettando l'ordine della tabella.

PM Quote
Avatar
Pinnolo (Normal User)
Rookie


Messaggi: 28
Iscritto: 15/03/2008

Segnala al moderatore
Postato alle 0:25
Lunedì, 03/11/2008
Testo quotato

Postato originariamente da Il Totem:

Beh... prendi la prima cella della prima riga e la scrivi; perndi le seconda della prima riga e la scrivi; prendi la terza e la scrivi; e ripeti tutto per tutte le righe.
Codice sorgente - presumibilmente VB.NET

  1. For I As Int32 = 0 To DataGrid.Rows.Count - 1
  2.   For J As Int32 = 0 To DataGrid.Columns.Count - 1
  3.     File.Write(DataGrid.Rows(I).Cells(J).Value & " ")
  4.   Next
  5.   File.WriteLine()
  6. Next


Ma questo è il metodo meno bello, perchè devi chiedere all'utente di impostare come carattere del notepad un font a spaziatura fissa (come Courier New o Lucida Console), poiché altrimenti i valori verrebbero tutti sfasati. E poi ti devi anche calcolare la lunghezza da far occupare ad ogni valore, per farli stare uno sotto all'altro rispettando l'ordine della tabella.

mi ci sto mettendo d' impego e sto cercando di farlo... in effetti questo è il metodo meno bello e non mi va di usarlo.

Intanto la funzione di ricerca l' ho implementata utilizzando un altro metodo.

PM Quote