Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DataSet.sdf
Aryan
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

DataSet.sdf

beantworten | zitieren | melden

verwendetes Datenbanksystem: SqlServerCE 3.5

Hallo C# entwickler/(in),

habe ein kleines, simples Problem.
Mit MSVisual C# 2010 Express habe ich ne Form erstellt, mittels MS Assistent füge ich ne Lokale Datenbank (Dataset1.sdf) in dem Project hinzu. Der Assistent baut mir die Verbindung auf.
siehe MS beispiel
http://msdn.microsoft.com/de-de/library/0f92s97z.aspx

Ich verwende "DataGridView" mit Datenquelle "BindingSource" von mein DataSet.

Nun meine Frage, wie speichere ich die Daten sätze aus DataGridView in mein Dataset1.sd?

der (InsertCommand) wird automatisch in mein TableAdapter durch den Assisten erzeugt.
Code aus dem MS Beispiel;


private void myUSERBindingNavigatorSaveItem_Click(object sender, EventArgs e)
 {
            try
            {
                this.Validate();
                this.myUSERBindingSource.EndEdit();
                //this.tableAdapterManager.UpdateAll(this.myUSERDataSet);
                this.myUSERTableAdapter.Update(this.myUSERDataSet.myUSER);
                MessageBox.Show("Update successful");
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("Update failed");
            }

 }
Ich will die Datensätze Local speichern um später mit MS SQl Server zu synchronisieren.

Hat man da ne Idee? oder hat man ne andere Idee wie ich meine Daten Local speichren soll, ich kenn mich mit C# nicht so gut aus

Danke im Voraus.
private Nachricht | Beiträge des Benutzers
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

beantworten | zitieren | melden

Für das lokale Speichern gibt es spezielle Templates die kannst du deinem Projekt hinzufügen und heißen "Local Database Cache" mit dem SQL Server kannst du dann das Change-Tracking benutzen.

Mehr dazu gibt die MSDN her.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Grumbler85 am .
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers
Aryan
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Hallo Grumbler85,

danke für deine Antwort,

Local verwende ich MSVisual C# 2010 Express, wo ich die "Local Database Cache" nicht erstellen kann.
Auf dem Server haben wir MSVisual C# 2010 Prof. damit habe ich den "Local Database Cache" erstellt.

Die Datensätze die ich in Datagridview einfügen, landen nicht in mein xy.sdf (myTabelle) sondern direct in SQL SERVER. X(

Beim erstellen der "LocalDataCache.sync" kann ich mittels "Datensynchronisierung Konfigurieren" die Datenverbindung festlegen.

Der Server lege ich fest und der Clint mit *.sdf wird automatisch erstellt.
habe ich hier vielleicht was Falsch gemacht?

die Connection bei "tbTableAdapter" ist :
Data Source=|DataDirectory|\xy.sdf;Max Database Size=2047
mit DELETE&INSERT&SELECT und UPDATECOMMAND's
und so sieht der Code aus;

{
this.Validate();
this.tbBindingSource.EndEdit();
this.tbDataGridView.EndEdit();
//this.tableAdapterManager.UpdateAll(this.myDataSet);
this.tbTableAdapter.Update(this.myDataSet.tb);

LocalDataCacheSyncAgent syncAgent = new LocalDataCacheSyncAgent();
// Set synch direction, default is DownloadOnly
syncAgent.tb.SyncDirection = Microsoft.Synchronization.Data.SyncDirection.Bidirectional;
Microsoft.Synchronization.Data.SyncStatistics syncStats = syncAgent.Synchronize();
this.tbTableAdapter.Fill(this.myDataSet.tb);

MessageBox.Show(
"\nTotal Changes Downloaded: " + syncStats.TotalChangesDownloaded + Environment.NewLine.ToString() +
"\nStart Time:               " + syncStats.SyncStartTime + Environment.NewLine.ToString() +
"\nComplete Time:            " + syncStats.SyncCompleteTime + Environment.NewLine.ToString() +
String.Empty + Environment.NewLine.ToString(), "Synchronisierung Meldung"
);
}
nochmal Danke
VG

Moderationshinweis von Abt (26.07.2011 - 14:40:32):

Beachte bitte [Hinweis] Wie poste ich richtig? Regel 6: Code in Tags

private Nachricht | Beiträge des Benutzers
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

beantworten | zitieren | melden

Naja - solange der SQL Server verfügbar ist hat der Cache keinen Sinn - das ist ja eher für die Zeit gedacht, in der du offline unterwegs bist.
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers
Aryan
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

genau,

die Applikation soll auch local laufen und am ende der Monat sollen die gespeicherte Datensätze auf SQL SERVER syncronisiert werden.

Das erste teil habe ich so gelöst, in dem ich die Datensätze local als XML.Datei gespeichert habe. Nun sollen die Datensätze durch ne VPN Tunnel mit SQL SERVER sysncronisiert werden.

Das mit Syc Framwork fande ich nicht schlecht, habe aber hierbei keine Erfahrung.

wie würdest du es machen?

Viele Grüße
private Nachricht | Beiträge des Benutzers