Ist jetzt etwas Offtopic und vermutlich werde ich dafür geköpft.. aber ich möchte diese Info trotzdem los werden:
Beim SQL Express ist es so, das die Systemdatenbanken (z.B. "master" und "model") durchaus größer als 10GB werden dürfen. Ist z.B. dort "dokumentiert": https://akawn.com/blog/2017/05/how-to-bypass-the-sql-server-express-database-size-limit/
Und ja... das ist mega frickelig und ich würde jedem davon abraten die DB´s zu nutzen... aber andererseits hat es uns schon das ein oder andere mal temporär geholfen ;)
Ich habe mit litedb (https://www.litedb.org) als Alternative zu SQLite recht gute Erfahrungen gemacht. Gefühlt ist der Datenzugriff "einfacher" und das Ding arbeitet definitiv nicht langsamer als SQLite.
Wie Abt schon sagt, würde man für solche Temetriedaten eine TimeseriesDb nutzen. Ich persönlich habe sehr gute Erfahrungen mit InfluxDb (https://www.influxdata.com) gemacht.
Wir nutzen Influx Hauptsächtlich dafür Sensordaten von IoT-Geräten zu sammeln und zu analysieren.
Das schöne daran ist, das man mit Chronograf ein Web Frontend dazu bekommt in dem man direkt die Daten auswerten und Grafisch als Diagramme und Dashboards anzeigen lassen kann.
Influx ist in Go geschrieben, hat keine Abhängigkeiten und ist für jede Plattform verfügbar.
Wenn es um die Menge der Daten in Bezug auf die Speichergröße der DB ankommt (Influx hat da auch ein sehr effizientes Speicher-Format), lohnt sich eventl. auch ein Blick auf MongoDB. in MongoDb gibt es inzwischen 3 verschiedene Komprimierungs-Einstellungen wie Daten in der DB komprimiert werden können.
Wir nutzen MongoDb z.B. dazu Protokoll-Dateien und Schnittstellen-Dateien durchsuchbar zu Archivieren oder Inhalte von "alten" Tabellen zu Archivieren.
So haben wir z.B. Erfahrungen gemacht wo wir den Inhalt einer 461MB DBase Datei in MongoDb übernommen haben und darin komprimiert für die selben Daten nur noch Speicherplatz von 18MB brauchen.
Mal eine andere Idee bzgl des Vorhabens.
Wenn es sich hier "nur" um das Bereitstellen eines Dokuwikis handelt, dann muss man keinen kompletten Apache nutzen.
PHP hat seit der Version 5.4 einen eingebauten Webserver (http://php.net/manual/de/features.commandline.webserver.php) welcher zumidnest zum Bereitstellen eines Dokuwikis taugt.
Der Aufruf würde dann so aussehen (I:\ ist in dem Fall mein USBStick ):
... dann fehlen dir wirklich noch viele, viele Grundlagen.
Wenn du erst mit c# anfängst, dann beschäftige dich erst mal damit wie eine Programm und darin eine Klasse / *.cs Datei aufgebaut ist.
Das was ich hier rein kopiert habe, ist der Inhalt einer Methode - das funktioniert nicht wenn man das einfach nur kopiert und in irgendeine Datei "rein klatscht" :-/
Und zum Rest... mit wäre nicht bekannst das VS2017 probleme in Verbindung mit Office2013 macht.
Alternativ in der Pro version vll die Office Integrationen nicht mit installieren.
Alternativ zur Pro gibt es auch die Community, welche fast einen Identischen Funktionsumfang hat, aber bis zu einer bestimmten Limitierung (Mitarbeiter/Umsatz) kostenfrei verfügbar ist.
Alternativ dazu gibt es auch (noch) die VS 2017 Express für Windows Desktop, welche auch kommerziell komplett kostenfrei genutzt werden darf.
Ach du je... da fehlen ja noch viele, viele Grundlagen :-/
Also nein, du musst keine Winform Anwendung dafür nutzen, geht genauso gut auch in einer reinen Konsolenanwendung.
Aber ohne den Code zu sehen, kann man schlecht helfen.
Andere Frage: warum nutzt du VS2013? Aktuell ist VS2017 ;-)
Du machst dir unnötige sorgen.
Wenn du Lokal arbeiten möchtest, brauchst du nicht mal einen Server.
Wenn du Server Betrieb haben möchtest, gibt es zahlreiche tools, welche dir das leben leichter machen (gogs.io oder gitea.io oder gitblit.com oder oder oder.. gibt echt viel von dem Kram).
Du kannst auch ohne weiteres ein SVN Repo zu einem Git-Repo incl. Branches und kompletter Historie migrieren.
Ich frage mal ganz kleinlaut: Gibt es einen Grund warum hier noch SVN statt Git genutzt wird?
Git wäre die bessere Alternative was das Tooling angeht (in jeder Vs incl. Code integriert).
Habt ihr im Visual Studio 2017 Express für Windows Desktop auch das Problem das beim "Enable-Migrations" der folgende Fehler kommt:
Fehler
PM> Enable-Migrations
System.IO.FileNotFoundException: Die Datei oder Assembly "Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: "Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
bei System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project project, Int32 shellVersion)
bei System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebSiteProject(Project project)
bei System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetTargetDir(Project project)
bei System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory)
bei System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)
bei System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0()
bei System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Hat jmd. eine Idee was man dagegen machen kann?
Im Visual Studio 2017 Professional funktioniert es ohne Probleme.
Die Tabelle markieren, STRG+C drücken, den Cursor an die Stelle bewegen wo die Tabelle eingefügt werden soll und dann STRG+V so oft drücken wie die Tabelle wieder eingefügt werden soll.
Sorry.. die Antwort musste jetzt bei der Frage sein ;-)
Womit hast du es denn bis jetzt versucht - womit soll es gelöst werden?
Office-Addin? Direktes Ansprechen von Word? Oder ohne Word mit dem OfficeXMLSDK?
Ohne jetzt selbst im kopf zu haben wie ADO.NET mit OLEDB richtig benutzt wird sehe ich auf jeden Fall das sein INSERT Statement so nicht funktionieren kann:
insert into * Sporttagebuch_new
gibt es so nicht - und Sternchen in den Statements sollte man sowieso grundsätzlich immer vermeiden ;-)
Korrekt ist die Syntax wie folgt (abhängig vom verwendeten RDBMS):
INSERT INTO [TABELLE] (FELD1,FELD2,FELD3) VALUES ('wert1','wert2','wert3')
Wobei man die Werte aufgrund von SQL Injection aber auch nicht direkt in das Statement mit reinschreiben sollte, sondern auf SQL-Parameter zurückgreifen soll. [Artikelserie] SQL: Parameter von Befehlen
Eine Sinnvolle alternative zu Access wäre z.b. SQLite welches du auch mit dem Entity Framework nutzen kannst, welches dir einen Objektorientierten Zugriff auf die Datenbank ermöglicht.
Für kleinere Projekte nutze ich in letzter zeit auch diese lib: https://github.com/praeclarum/sqlite-net
Wäre für dich am Anfang vielleicht gar nicht so schlecht - schau dir dort mal die Beispiele an :)
Mein Azubi hat damals als er neu anfing viel NDatabase (http://ndatabase.wix.com/home) benutzt - dort war der zugriff auch sehr einfach - aber das Format der DB ist kein Standard wie SQLite, von daher kann man die Daten außerhalb seiner eigenen Anwendung nur mit LinqPad anschauen :-/
Dazu müssten wir erst einmal wissen wie du das Speichern versuchst und welche Fehler du dabei bekommst.
In dem Code den du gepostet hast, kann man nur sehen wie du das Laden versuchst, jedoch nichts was mit dem Speichern zu tun hat.
Andere Frage zum Thema: Muss es zwingend Access sein?
Kfz ist in deinem Fall ein Objekt zu dem es keine Klasse gibt.
Bedeutet: Die Felder "leistung", "marke" und "farbe" gehören als Eigenschaften in eine extra Klasse, welche "Kfz" heißt.
Ich persönlich handhabe das so das ich alle geänderten/gelöschten Datensätze in eine Schema-lose NOSQL DB (z.b. MongoDB) beim SaveChanges schreibe, so dass ich in Nachhinein zugriff auf jede Änderung und jeden gelöschten Datensatz habe, welchen ich dann auch wieder restaurieren kann.
Im Einfachsten Fall hat die Methode einen Rückgabewert (true/false) den du in der Bedingung prüfst.
Hast du die Methode selbst geschrieben? -> Dann füge einen Rückgabewert hinzu.
Hast du sie nicht selbst geschrieben, dann lies dir die Dokumentation zu der Methode durch :-)
Also... Vereinfacht gesagt hast du 2 Werte: ID und ein "gültig_bis"-Datum?
Und du möchtest jetzt eine Liste mit ID´s pflegen, welche bis zu einem Bestimmten Datum benutzt werden können/düfen.
Ich denke ich würd eine List<T> mit einem Objekt nutzen wo ein int und ein Datetime drin ist und diese Liste dann mit Linq bzw Lambda abfragen... alle Objekte raus suchen für die das datum abgelaufen ist und diese nach ID sortieren. Das erste Objekt sollte dann die nächste abgelaufene ID beinhalten.
Trotzdem hab ich den Sinn von dem ganzen Konstrukt noch nicht wirklich verstanden ;-)
Also.. welchen Sinn hat das ID´s mehrfach zu vergeben? der Name "ID" impliziert doch schon das es etwas ist um irgendetwas eindeutig identifizieren zu können.
Ich hatte selbe Aufgabenstellung vor einigen Jahren für 15 aussendienstmitarbeiter.
Das Konzept hat sich im laufe der zeit immer mal wieder geändert.
Im Moment sind wir an dem punkt wo wir einen Linux Server angemietet haben welcher zum einen dateizugriff über ftp bereit stellt und zum andren eine Soap api zu einer MySQL Datenbank bereit stellt in welcher kundendaten und Termine gepflegt werden.
Die api wurde mit php gebaut und ein c# Client greift darauf zu.
Im Moment sind wir am evaluieren ob z.b. ownclound eine sinnvolle alternative darstellt oder wir z.b. auch datensätze und Dateien in mongodb/gridfs ablegen können.