Oppure

Loading
10/03/09 18:56
enoyr
Ciao a tutti
ho creato un windows form che salva dati da un database file di sql server
ora volevo creare due pulsanti per importare es esportare il database cosi in caso di errore esiste una copia di backup per poter ripristinare tutto
mi potete dare una mano per favore sono disperato
aaa
10/03/09 18:59
andrea.b89
ehm..
se ho capito bene con importa devi leggere un database e quindi caricarne i dati, mentre con esporta salvare una copia dei dati letti in un nuovo database giusto?
aaa
11/03/09 0:14
enoyr
esattamente ti prego help me
aaa
11/03/09 7:34
andrea.b89
Guarda per risolvere il problema devi fare nel seguente modo :

1) Importare
- Selezioni il file da aprire (ti consiglio un OpenFileDialog)
- Apri una connessione con il database selezionato.
- Tramite una stringa SQL leggi i dati dal database

2) Esportare
- Selezioni ove salvare il file del database (ti consiglio un SaveFileDialog)
- Crei il database vuoto
- Apri una connessione con il file
- Usi le funzioni per creare le tabelle e quanto altri
- Chiudi la connessione.

Questo esssenzialmente è il metodo da seguire, quanto meno quello che farei io.

Al momento non ho il tempo di farti un esempio perchè sono all'università.
Non appena torno ti faccio l'esempio :k:

Spero di esserti stato di aiuto
aaa
12/03/09 15:24
enoyr
grazie sei gentilissimo, potresti postarmi un esempio di codice per fasavore?
aaa
13/03/09 2:23
enoyr
a proposito il file del database è mdf
aaa
13/03/09 15:42
enoyr
ciao conosco un po openfiledialog e savefiledialog il mio problema è scrivere al savefiledialog di creare una copia del database ..ora ti posto il mio codice

il problema è alla fine del listato


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Web.Mail;
using System.IO;
using System.Data.SqlClient;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;

namespace Sargassi_2.__GufSoft
{
    public partial class Form1 : Form
    {
        private static Server srvSql;
        public Form1()
        {
            InitializeComponent();
        }

        private void clientiBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {// Display a MsgBox asking the user to save changes or abort.

            if (MessageBox.Show("Sei sicuro di voler salvare? ", "Attenzione",MessageBoxButtons.YesNo) == DialogResult.Yes)
           {


            try
                {
                  this.Validate();
                  this.clientiBindingSource.EndEdit();
                  this.clientiTableAdapter.Update(this._database_Sargassi_1_0DataSet.Clienti);
                  this.trattamentiBindingSource.EndEdit();
                  this.trattamentiTableAdapter.Update(this._database_Sargassi_1_0DataSet.Trattamenti);
                  MessageBox.Show("Salvataggio effettuato","Salva");
                }
              catch (System.Exception ex)
              {
                  MessageBox.Show("Salvataggio fallito","Salva");
              }



        }
    }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Trattamenti'. È possibile spostarla o rimuoverla se necessario.
            this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
            // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
            this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);

        }

        private void fillByToolStripButton_Click(object sender, EventArgs e)
        {
            try
            {
                this.clientiTableAdapter.FillBy(this._database_Sargassi_1_0DataSet.Clienti, param1ToolStripTextBox.Text);
                MessageBox.Show("Ricerca effettuata","Ricerca");
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
                MessageBox.Show("Ricerca fallita","Ricerca");

            }


        }

        private void button1Click(object sender, EventArgs e)
        {
            // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Trattamenti'. È possibile spostarla o rimuoverla se necessario.
            this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
            // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
            this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            // Display a MsgBox asking the user to save changes or abort.

            if (MessageBox.Show("Sei sicuro di voler Ricaricare i dati? Tutti i dati non salvati andranno persi ", "Attenzione",MessageBoxButtons.YesNo) == DialogResult.Yes)
           {

            // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Trattamenti'. È possibile spostarla o rimuoverla se necessario.
            this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
            // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
            this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);
            MessageBox.Show("Dati ricaricati", "Ricarica dati");
           }
        }

        private void infoclick(object sender, EventArgs e)
        {
            if (MessageBox.Show("Sei sicuro di voler ricevere informazioni dal web ", "www.gufolino.com",MessageBoxButtons.YesNo) == DialogResult.Yes)
           {
            System.Diagnostics.Process.Start("http://www.gufolino.com", "");
           }
        }

        private void deleteclick(object sender, EventArgs e)
        {
            if (MessageBox.Show("Eliminare tutti i dati del cliente selezionato ?", "Eliminazione dati cliente",MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    MessageBox.Show("Dati cliente eliminati", "Eliminazione dati cliente");
             
                }
            else
            {
                this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
                // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
                this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);
                MessageBox.Show("Dati cliente non eliminati", "Eliminazione dati cliente");

            }

        }

        private void cancellatrattamentoclick(object sender, EventArgs e)
        {
            if (MessageBox.Show("Eliminare il trattamento selezionato ?", "Eliminazione trattamento", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                MessageBox.Show("Dati trattamento eliminati", "Eliminazione dati trattamento");
            }
            else
            {
                this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
                // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.

                MessageBox.Show("Dati trattamento non eliminati", "Eliminazione dati trattamento");

            }

        }

        private void aggiungiclienteclick(object sender, EventArgs e)
        {
            if (MessageBox.Show("Aggiungere un nuovo cliente? ", "Aggiungi scheda cliente", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {

            }

        }

        private void mailclick(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog();
        }

        private void importadb_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Importare il Database ?", "Importazione Database", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                MessageBox.Show("Database importato", "Importazione Database");

            }
            else
            {
                MessageBox.Show("Database non importato", "Importazione Database");
            }
        }

        private void saveFileDialog1click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Filter = "Database file (*.mdf)|*.mdf";
           
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
          {

              // devo dirgli di creare una copia del database che è un file mdf e il relativo file log
          }
        }
    }
  
}
Ultima modifica effettuata da Il Totem 13/03/09 18:06
aaa
13/03/09 18:55
andrea.b89
Ho provato a scrivere questo metodo per la creazione di databse mdb.
Per utilizzare il tutto devi inserire un paio di riferimenti :

Microsoft ActiveX Data Object 2.8 Library
Microsoft ADO Ext 2.8 DDL and Security

Poi il seguente metodo crea il database

private static void CreaDB(string NomeDatabase)
        {
            ADODB.ConnectionClass cns = new ADODB.ConnectionClass();
            ADOX.TableClass tabella = new ADOX.TableClass();
            ADOX.CatalogClass catalog = new ADOX.CatalogClass();
            ADOX.KeyClass chiave = new ADOX.KeyClass();
            ADODB.Connection iConnection;
            ADOX.Catalog iCatalog;
            ADOX.Table iTabella;
            ADOX.Key iKey;

            iConnection = cns;
            iCatalog = catalog;
            iTabella = tabella;
            iKey = chiave;

            try
            {
                //crei il database se non esiste
                if (!System.IO.File.Exists(NomeDatabase))
                {
                    ADOX.CatalogClass cat = new ADOX.CatalogClass();
                    cat.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + NomeDatabase + ";");

                }
                
                //crei la connessione con il file

                iConnection.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + NomeDatabase + ";", String.Empty, String.Empty, -1);

                //colleghi la connessione al catalog

                iCatalog.ActiveConnection = iConnection;

                //Creazione delle colonne della tabella iTabella
                //Qui va inserito tutto ciò che serve per ricreare la tabella
                #region Costruzione tabella
                //crei la tabella

                iTabella.Name = "Test";

                //crea 3 colonne,ID, Nome e Cognome

                iTabella.Columns.Append("ID", ADOX.DataTypeEnum.adInteger, 0);
                iTabella.Columns.Append("Nome", ADOX.DataTypeEnum.adInteger, 0);
                iTabella.Columns.Append("Cognome", ADOX.DataTypeEnum.adInteger, 0);

                iKey.Name = "PrimaryKey";
                iKey.Type = ADOX.KeyTypeEnum.adKeyPrimary;
                iKey.Columns.Append("ID", ADOX.DataTypeEnum.adVarWChar, 0);

                //setta la chiave alla tabella
                iTabella.Keys.Append(iKey, ADOX.KeyTypeEnum.adKeyPrimary, System.Reflection.Missing.Value, "", "");

                //setta la tabella
                iCatalog.Tables.Append(iTabella);
                #endregion
            }

            catch (Exception x)
            {
                MessageBox.Show(x.Message + Environment.NewLine + x.StackTrace);
            }

            // svuota gli oggetti

            iConnection.Close();
            iConnection = null;

            iKey = null;
            iTabella = null;
            iCatalog = null;

        }
aaa