Salve, ho questo codice. vorrei invece di salvare in un file binario, metterlo in un database sql compact 3.5.
Mi potete aiutarmi . ?
tabella: rubrica
tre campi :
Nome,
Numero,
Città,
dovete vedere solo : CaricaFile();
e la btnSalva_Click();
Mi date una mano?
Grazie mille.
ecco il codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace RubricaTelefonica
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void LoadFile (object sender, EventArgs e)
{
//richiama il metodo per l'impostazione
//del DataGridView
Imposta_DGV();
//controlla se il file esiste
if (File.Exists("Rubrica.rub"))
CaricaFile(); //se esiste carico il dgv con tutti i dati
//disabilita il bottone salva
btnSalva.Enabled = false;
}
private void Imposta_DGV()
{
//imposta il numero di campi per
//il DataGridView dgv
DGV.ColumnCount = 3;
//imposta le intestazioni dei 3 campi
DGV.Columns[0].Name = "Nome";
DGV.Columns[1].Name = "Numero";
DGV.Columns[2].Name = "Città";
}
private void CaricaFile()
{
//crea uno stream in lettura
FileStream fs = new FileStream("Rubrica.rub", FileMode.Open);
//crea un formattatore binario
BinaryFormatter binfor = new BinaryFormatter();
//carica nella matrice i dati contenuti nel file
string[,] griglia = (string[,])binfor.Deserialize(fs);
//chiudi lo stream
fs.Close();
//popola il dgv con i dati del file
for (int riga = 0; riga < griglia.GetLength(0) - 1; riga++)
{
//vettore temporaneo che contiene
//una riga alla volta della matrice
string[] tmp ={ griglia[riga, 0], griglia[riga, 1], griglia[riga, 2] };
//aggiungi il vettore al DataGridView
DGV.Rows.Add(tmp);
}
//imposta il testo del GroupBox
grpbDGV.Text = "Nella rubrica sono presenti " + (DGV.Rows.Count - 1) + " voci";
}
private void btnIns_Click(object sender, EventArgs e)
{
//vettore temporaneo che contiene i dati inseriti
string[] tmp ={ txtNome.Text, txtTel.Text, txtCitta.Text };
//aggiungilo al dgVDataGridView
DGV.Rows.Add(tmp);
//abilita il bottone Salva
btnSalva.Enabled = true;
//imposta il testo del GroupBox
grpbDGV.Text = "Nella rubrica sono presenti " + (DGV.Rows.Count - 1)
+ " voci";
//reimposta i tre textbox
txtNome.Text = "Cognome e nome";
txtTel.Text = "Numero di telefono";
txtCitta.Text = "Città";
}
private void btnSalva_Click(object sender, EventArgs e)
{
//conta quante righe possiede
//il DataGridView
int righe = DGV.Rows.Count;
//crea una matrice che conterrà i valori delle celle
string[,] griglia = new string[righe, 3];
//i due cicli annidati seguenti
//estraggono le informazioni dal DataGridView
//e le memorizzano nella matrice che poi
//sarà seralizzata
for (int riga = 0; riga < righe - 1; riga++)
for (int col = 0; col < 3; col++)
griglia[riga, col] = DGV.Rows[riga].Cells[col].Value.ToString();
//crea uno stream in modalità scrittura
FileStream fs = new FileStream("Rubrica.rub", FileMode.Create);
//crea il formattatore
BinaryFormatter binfor = new BinaryFormatter();
//serializza la matrice
binfor.Serialize(fs, griglia);
//chiudo il flusso
fs.Close();
//disabilita il pulsante
btnSalva.Enabled = false;
//ridisegna tutto il DataGridView
DGV.Update();
}
private void DGV_CellClick(object sender, DataGridViewCellEventArgs e)
{
//abilita il pulsante
//Salva
btnSalva.Enabled = true;
}
private void DGV_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
//aggiorna il messaggio del controllo GroupBox grpBdgv
grpbDGV.Text = "Nella rubrica sono presenti " + (DGV.Rows.Count - 1) + " voci";
}
}
}