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 - windows form visual c#
Forum - C# / VB.NET - windows form visual c#

Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 19:56
Martedì, 10/03/2009
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

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 19:59
Martedì, 10/03/2009
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?

PM Quote
Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 1:14
Mercoledì, 11/03/2009
esattamente ti prego help me

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 8:34
Mercoledì, 11/03/2009
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

PM Quote
Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 16:24
Giovedì, 12/03/2009
grazie sei gentilissimo, potresti postarmi un esempio di codice per fasavore?

PM Quote
Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 3:23
Venerdì, 13/03/2009
a proposito il file del database è mdf

PM Quote
Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 16:42
Venerdì, 13/03/2009
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


Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Web.Mail;
  9. using System.IO;
  10. using System.Data.SqlClient;
  11. using Microsoft.SqlServer.Management.Smo;
  12. using Microsoft.SqlServer.Management.Common;
  13.  
  14. namespace Sargassi_2.__GufSoft
  15. {
  16.     public partial class Form1 : Form
  17.     {
  18.         private static Server srvSql;
  19.         public Form1()
  20.         {
  21.             InitializeComponent();
  22.         }
  23.  
  24.         private void clientiBindingNavigatorSaveItem_Click(object sender, EventArgs e)
  25.         {// Display a MsgBox asking the user to save changes or abort.
  26.  
  27.             if (MessageBox.Show("Sei sicuro di voler salvare? ", "Attenzione",MessageBoxButtons.YesNo) == DialogResult.Yes)
  28.            {
  29.  
  30.  
  31.             try
  32.                 {
  33.                   this.Validate();
  34.                   this.clientiBindingSource.EndEdit();
  35.                   this.clientiTableAdapter.Update(this._database_Sargassi_1_0DataSet.Clienti);
  36.                   this.trattamentiBindingSource.EndEdit();
  37.                   this.trattamentiTableAdapter.Update(this._database_Sargassi_1_0DataSet.Trattamenti);
  38.                   MessageBox.Show("Salvataggio effettuato","Salva");
  39.                 }
  40.               catch (System.Exception ex)
  41.               {
  42.                   MessageBox.Show("Salvataggio fallito","Salva");
  43.               }
  44.  
  45.  
  46.  
  47.         }
  48.     }
  49.  
  50.         private void Form1_Load(object sender, EventArgs e)
  51.         {
  52.             // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Trattamenti'. È possibile spostarla o rimuoverla se necessario.
  53.             this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
  54.             // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
  55.             this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);
  56.  
  57.         }
  58.  
  59.         private void fillByToolStripButton_Click(object sender, EventArgs e)
  60.         {
  61.             try
  62.             {
  63.                 this.clientiTableAdapter.FillBy(this._database_Sargassi_1_0DataSet.Clienti, param1ToolStripTextBox.Text);
  64.                 MessageBox.Show("Ricerca effettuata","Ricerca");
  65.             }
  66.             catch (System.Exception ex)
  67.             {
  68.                 System.Windows.Forms.MessageBox.Show(ex.Message);
  69.                 MessageBox.Show("Ricerca fallita","Ricerca");
  70.  
  71.             }
  72.  
  73.  
  74.         }
  75.  
  76.         private void button1Click(object sender, EventArgs e)
  77.         {
  78.             // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Trattamenti'. È possibile spostarla o rimuoverla se necessario.
  79.             this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
  80.             // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
  81.             this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);
  82.  
  83.         }
  84.  
  85.         private void toolStripButton1_Click(object sender, EventArgs e)
  86.         {
  87.             // Display a MsgBox asking the user to save changes or abort.
  88.  
  89.             if (MessageBox.Show("Sei sicuro di voler Ricaricare i dati? Tutti i dati non salvati andranno persi ", "Attenzione",MessageBoxButtons.YesNo) == DialogResult.Yes)
  90.            {
  91.  
  92.             // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Trattamenti'. È possibile spostarla o rimuoverla se necessario.
  93.             this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
  94.             // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
  95.             this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);
  96.             MessageBox.Show("Dati ricaricati", "Ricarica dati");
  97.            }
  98.         }
  99.  
  100.         private void infoclick(object sender, EventArgs e)
  101.         {
  102.             if (MessageBox.Show("Sei sicuro di voler ricevere informazioni dal web ", "www.gufolino.com",MessageBoxButtons.YesNo) == DialogResult.Yes)
  103.            {
  104.             System.Diagnostics.Process.Start("http://www.gufolino.com", "");
  105.            }
  106.         }
  107.  
  108.         private void deleteclick(object sender, EventArgs e)
  109.         {
  110.             if (MessageBox.Show("Eliminare tutti i dati del cliente selezionato ?", "Eliminazione dati cliente",MessageBoxButtons.YesNo) == DialogResult.Yes)
  111.                 {
  112.                     MessageBox.Show("Dati cliente eliminati", "Eliminazione dati cliente");
  113.              
  114.                 }
  115.             else
  116.             {
  117.                 this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
  118.                 // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
  119.                 this.clientiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Clienti);
  120.                 MessageBox.Show("Dati cliente non eliminati", "Eliminazione dati cliente");
  121.  
  122.             }
  123.  
  124.         }
  125.  
  126.         private void cancellatrattamentoclick(object sender, EventArgs e)
  127.         {
  128.             if (MessageBox.Show("Eliminare il trattamento selezionato ?", "Eliminazione trattamento", MessageBoxButtons.YesNo) == DialogResult.Yes)
  129.             {
  130.                 MessageBox.Show("Dati trattamento eliminati", "Eliminazione dati trattamento");
  131.             }
  132.             else
  133.             {
  134.                 this.trattamentiTableAdapter.Fill(this._database_Sargassi_1_0DataSet.Trattamenti);
  135.                 // TODO: questa riga di codice carica i dati nella tabella '_database_Sargassi_1_0DataSet.Clienti'. È possibile spostarla o rimuoverla se necessario.
  136.  
  137.                 MessageBox.Show("Dati trattamento non eliminati", "Eliminazione dati trattamento");
  138.  
  139.             }
  140.  
  141.         }
  142.  
  143.         private void aggiungiclienteclick(object sender, EventArgs e)
  144.         {
  145.             if (MessageBox.Show("Aggiungere un nuovo cliente? ", "Aggiungi scheda cliente", MessageBoxButtons.YesNo) == DialogResult.Yes)
  146.             {
  147.  
  148.             }
  149.  
  150.         }
  151.  
  152.         private void mailclick(object sender, EventArgs e)
  153.         {
  154.             Form2 form2 = new Form2();
  155.             form2.ShowDialog();
  156.         }
  157.  
  158.         private void importadb_Click(object sender, EventArgs e)
  159.         {
  160.             if (MessageBox.Show("Importare il Database ?", "Importazione Database", MessageBoxButtons.YesNo) == DialogResult.Yes)
  161.             {
  162.                 MessageBox.Show("Database importato", "Importazione Database");
  163.  
  164.             }
  165.             else
  166.             {
  167.                 MessageBox.Show("Database non importato", "Importazione Database");
  168.             }
  169.         }
  170.  
  171.         private void saveFileDialog1click(object sender, EventArgs e)
  172.         {
  173.             SaveFileDialog saveFileDialog1 = new SaveFileDialog();
  174.             saveFileDialog1.Filter = "Database file (*.mdf)|*.mdf";
  175.            
  176.             if (saveFileDialog1.ShowDialog() == DialogResult.OK)
  177.           {
  178.  
  179.               // devo dirgli di creare una copia del database che è un file mdf e il relativo file log
  180.           }
  181.         }
  182.     }
  183.  
  184. }


Ultima modifica effettuata da Il Totem il 13/03/2009 alle 19:06
PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 19:55
Venerdì, 13/03/2009
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

Codice sorgente - presumibilmente C++

  1. private static void CreaDB(string NomeDatabase)
  2.         {
  3.             ADODB.ConnectionClass cns = new ADODB.ConnectionClass();
  4.             ADOX.TableClass tabella = new ADOX.TableClass();
  5.             ADOX.CatalogClass catalog = new ADOX.CatalogClass();
  6.             ADOX.KeyClass chiave = new ADOX.KeyClass();
  7.             ADODB.Connection iConnection;
  8.             ADOX.Catalog iCatalog;
  9.             ADOX.Table iTabella;
  10.             ADOX.Key iKey;
  11.  
  12.             iConnection = cns;
  13.             iCatalog = catalog;
  14.             iTabella = tabella;
  15.             iKey = chiave;
  16.  
  17.             try
  18.             {
  19.                 //crei il database se non esiste
  20.                 if (!System.IO.File.Exists(NomeDatabase))
  21.                 {
  22.                     ADOX.CatalogClass cat = new ADOX.CatalogClass();
  23.                     cat.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + NomeDatabase + ";");
  24.  
  25.                 }
  26.                
  27.                 //crei la connessione con il file
  28.  
  29.                 iConnection.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + NomeDatabase + ";", String.Empty, String.Empty, -1);
  30.  
  31.                 //colleghi la connessione al catalog
  32.  
  33.                 iCatalog.ActiveConnection = iConnection;
  34.  
  35.                 //Creazione delle colonne della tabella iTabella
  36.                 //Qui va inserito tutto ciò che serve per ricreare la tabella
  37.                 #region Costruzione tabella
  38.                 //crei la tabella
  39.  
  40.                 iTabella.Name = "Test";
  41.  
  42.                 //crea 3 colonne,ID, Nome e Cognome
  43.  
  44.                 iTabella.Columns.Append("ID", ADOX.DataTypeEnum.adInteger, 0);
  45.                 iTabella.Columns.Append("Nome", ADOX.DataTypeEnum.adInteger, 0);
  46.                 iTabella.Columns.Append("Cognome", ADOX.DataTypeEnum.adInteger, 0);
  47.  
  48.                 iKey.Name = "PrimaryKey";
  49.                 iKey.Type = ADOX.KeyTypeEnum.adKeyPrimary;
  50.                 iKey.Columns.Append("ID", ADOX.DataTypeEnum.adVarWChar, 0);
  51.  
  52.                 //setta la chiave alla tabella
  53.                 iTabella.Keys.Append(iKey, ADOX.KeyTypeEnum.adKeyPrimary, System.Reflection.Missing.Value, "", "");
  54.  
  55.                 //setta la tabella
  56.                 iCatalog.Tables.Append(iTabella);
  57.                 #endregion
  58.             }
  59.  
  60.             catch (Exception x)
  61.             {
  62.                 MessageBox.Show(x.Message + Environment.NewLine + x.StackTrace);
  63.             }
  64.  
  65.             // svuota gli oggetti
  66.  
  67.             iConnection.Close();
  68.             iConnection = null;
  69.  
  70.             iKey = null;
  71.             iTabella = null;
  72.             iCatalog = null;
  73.  
  74.         }


PM Quote