|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
[C#] Visualizzare dati da DB Access in DataGridView
Sto cercando di visualizzare i dati presenti in un DB di Access in un controllo DataGridView in C#. Ho usato i controlli DataSet, BindingSource e BindingNavigator.
Il codice che ho scritto per la visualizzazione è questo: Codice:
OleDbConnection Conn = new OleDbConnection(); OleDbCommand Cmd = new OleDbCommand(); OleDbDataAdapter Adptr = new OleDbDataAdapter(); string sConn = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data source=C:\\Users\\Matteo\\Desktop\\Stramaledetta Cartuccia.mdb"; string SQL = "SELECT * FROM Vendite"; Conn.ConnectionString = sConn; Conn.Open(); Cmd.CommandText = SQL; Cmd.CommandType = CommandType.Text; Cmd.Connection = Conn; DataTable Table = new DataTable("Vendite"); datasetStramaledettacartuccia.Tables.Add(Table); Adptr.SelectCommand = Cmd; Adptr.Fill(Table); Conn.Close(); bindingSourceVendite.DataMember = "Vendite"; dataGridView1.DataMember = "Vendite"; |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
a 'orecchio' credo che manchi il DataSource per la tua griglia:
Codice:
tuaDataGridView.DataSource = tuoDataTable o tuoDataSet
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Quote:
Io in un campo del database devo scrivere un numero più grande di un Int32, mi ci vuole un tipo a precisione doppia. Come faccio a cambiare da codice il tipo di dato di un campo del database? Poi nella stringa di connessione al DB come faccio a indicare la cartella dell'applicazione? Ad esempio |AppDir|\\mioDatabase.mdb Ultima modifica di voyager18 : 03-09-2007 alle 11:54. |
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Io in un campo del database devo scrivere un numero più grande di un Int32, mi ci vuole un tipo a precisione doppia. Come faccio a cambiare da codice il tipo di dato di un campo del database?
Poi nella stringa di connessione al DB come faccio a indicare la cartella dell'applicazione? Ad esempio |AppDir|\\mioDatabase.mdb Poi per aggiornare il database Access con i dati che ho immesso nella datagrid ho scirtto questo codice: Codice:
private void bindingNavigatorSaveItem_Click(object sender, EventArgs e) { bindingSource.EndEdit(); string SQL = "INSERT INTO [Vendite] VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; string sConn = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data source=C:\\Users\\Matteo\\Desktop\\Stramaledetta Cartuccia.mdb"; Conn.ConnectionString = sConn; Conn.Open(); Cmd.CommandText = SQL; Cmd.CommandType = CommandType.Text; Cmd.Connection = Conn; Adatt.InsertCommand = Cmd; Adatt.Update(dataSet, "Vendite"); Conn.Close(); } Che parametri mancherebbero??? |
![]() |
![]() |
![]() |
#5 | |||
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Codice:
int mioNumero; double d = Convert.ToDouble(mioNumero.ToString()); Quote:
Codice:
//esempio: tuaDir = @"mioDatabase.mdb"; //perchè di default se non metti un path diverso, i file che cerchi di aprire //o ai quali cerchi di accedere sono già di base nella cartella dell'applicazione. //il carattere "@" ti permette di risparmiare i doppi slash Quote:
Questi ultimi sono relativi a MySql. L'esempio che ti faccio è con SqlServer Si chiamano SqlParameter e devono essere definiti prima: Devi decidere o se creare un array di parametri o di trattarli uno alla volta: Codice:
//ti consiglio l'array SqlParameter[] parameters = new SqlParameter[3]; //definiamo prima che tipo di dato è parameters[0] = new SqlParameter("@nome_campo_tua_tabella", SqlDbType.TipoDiDatoDelDatabase); //per esempio un Intero o una stringa.. //poi definiamo da dove deve prendere il valore parameters[0].Value = tuaGriglia.Rows[numero_riga].Cells[numero_di_cella].Value; //e questo per ogni parametro; //poi questi parametri li devi aggiungere al tuo insert command, per es.: cmd.Parameters.Add(parameters[0]); //oppure puoi ciclarli con un for od un foreach: for(int i = 0; i < numeroParametri; i++) { cmd.Parameters.Add(parameters[i]); } Ciao. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|||
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Ho seguito il tuo metodo con l'array e ha funzionato. C'è però un modo per salvare nel database Access solo i dati che sono stati modificati dopo l'ultimo salvataggio?
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Codice:
string SQL = "INSERT INTO blablabla..."; //devi fare: string SQL = "UPDATE nomeTuaTabella SET campo1 = nuovo_valore, campo2 = nuovo_valore WHERE condizione_per_la_sostituzione... ";
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Quella che mi hai detto tu è per aggiornare dei campi già esistenti giusto? Io invece devo fare:
- Apro il database con alcuni record già esistenti - Inserisco dei nuovi record - Salvo il database Come faccio a creare dei parametri per l'oggetto Command che includano però solo i nuovi record che ho inserito? |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Aiutatemi per favore!!!
![]() |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Aiutatemi vi pregooo!!
![]() |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Forse mi sfugge qualcosa ?!?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Hai capito bene. Però la mia domanda è questa. Come faccio ad aggiornare/inserire solo i record che ho modificato?
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
e per i parametri dell'oggetto OleDbCommand? cioè come faccio ad inserire nella query di aggiornamento tutti i dati modificati o aggiunti?
|
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: Aug 2007
Messaggi: 138
|
Per favore aiutami che sto diventando pazzo!!
![]() |
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:18.