Laden...

Neue .mdf-Datenbank erstellen?

Erstellt von MasterOfCoding vor 17 Jahren Letzter Beitrag vor 17 Jahren 4.858 Views
M
MasterOfCoding Themenstarter:in
131 Beiträge seit 2004
vor 17 Jahren
Neue .mdf-Datenbank erstellen?

Hallo!

Ich möchte mein digitales Logbuch neu schreiben, da ich jetzt weitaus bessere Datenbank-Kenntnisse habe.
Wenn ich jetzt im VS 2005 dem Projekt eine neue Datenquelle hinzufüge und eine Microsoft SQL Server Datenbank-Datei angebe funktioniert eigentlich alles wunderbar.
Mein Problem: Wie erstelle ich eine neue .mdf-Datenbankdatei (am besten mit SMO)? Ich meine hier nicht eine auf dem SQL-Server registrierte Datenbank, sondern nur eine .mdf-Datenbankdatei.

Ich möchte nämlich dem Benutzer erlauben, mehrere Datenbanken zu erstellen ("Datei->Neu"), die dann ähnlich wie Access-Datenbanken leicht weitergegeben werden können. Nur verwende ich SQL Server 2005 Express Edition.

Oder ist es bei Datenbankanwendungen üblich, sich ausschließlich mit einer Datenbank zu verbinden und diese mitauszuliefern?

Vielen Dank,
Andreas

-
885 Beiträge seit 2004
vor 17 Jahren

Hallo MasterOfCoding,

Oder ist es bei Datenbankanwendungen üblich, sich ausschließlich mit einer Datenbank zu verbinden und diese mitauszuliefern?

Ich kenne das von unsrem Unternehmen so, dass der Kunde die Wahl hat, eine Datenbank vorzubereiten und wir diese dann nur noch mit den Daten gegliedert (Tables anlegen etc.) wird, oder die Datenbank von der Anwendung erstellt und dann gegliedert wird.

Mein Problem: Wie erstelle ich eine neue .mdf-Datenbankdatei (am besten mit SMO)? Ich meine hier nicht eine auf dem SQL-Server registrierte Datenbank, sondern nur eine .mdf-Datenbankdatei.

Wieder ein Beispiel wies bei uns gemacht wird... Wir schicken, sofern mit dem Kunden abgesprochen / Rechte vorhanden, ein SQL-Script an den Server und richten uns alles ein was wir brauchen.

M
MasterOfCoding Themenstarter:in
131 Beiträge seit 2004
vor 17 Jahren

Vielen Dank!

Verstehe. Wie man mit einer T-SQL Anweisung oder SMO eine neue Datenbank erzeugt weiß ich bereits.
Mein Problem ist allerdings, dass ich gerne keine auf dem Server registrierte Datenbank (denn nur das kann ich bisher) will. Ich will genauso wie im Dialog "Neue Datenquelle hinzufügen" nur eine SQL Server 2005 Datenbankdatei anlegen - wenn möglich. Ansonsten bleibe ich bei einer "normalen" registrierten Datenbank.

Ein anderes Problem, das ich bei der Konzeption einer Datenbank-Anwendung habe:
In meinem Datenbank-Buch steht, dass man immer so wenig Daten wie möglich vom Server zum Client transportieren soll. Klingt total logisch für mich, allerdings:
Liefert man dem Kunden eine Art Suchmaske, in der er auswählen kann, welche Daten er sehen/bearbeiten will? Bekommt er dann nie alle Datensätze zu sehen?

Oder zeigt man ihm mittels DataReader alle Datensätze und lässt ihn auswählen, welche er bearbeiten will?

Vielen Dank,
Andreas

-
885 Beiträge seit 2004
vor 17 Jahren

Verstehe. Wie man mit einer T-SQL Anweisung oder SMO eine neue Datenbank erzeugt weiß ich bereits.
Mein Problem ist allerdings, dass ich gerne keine auf dem Server registrierte Datenbank (denn nur das kann ich bisher) will. Ich will genauso wie im Dialog "Neue Datenquelle hinzufügen" nur eine SQL Server 20

Oh da hab ich leider auch noch keine Erfahrung sammeln können. Ich möchte auch nochmals erwähnen, dass das nur vin meinem Unternehmen so gemacht wird und nicht heißen muss, dass dies die beste Vorgehensweise ist. BIn mir aber sich die nächsten Tage melden sich noch mehr hierzu.

Oder zeigt man ihm mittels DataReader alle Datensätze und lässt ihn auswählen, welche er bearbeiten will?

Die Frage kannst du dir leicht selbst beantworten. Angenommen du hast 100.000 Datensätze und willst pro Seite nur ~30 Anzeigen. Macht es da Sinn, alles auzulesen? Nein. Klar sollte man so wenig wie möglich hin und her schicken, aber dafür ist eine DB konzipiert 😉

M
MasterOfCoding Themenstarter:in
131 Beiträge seit 2004
vor 17 Jahren

Vielen Dank!

Bin mir aber sicher die nächsten Tage melden sich noch mehr hierzu.

Das wäre toll! 👍

Die Frage kannst du dir leicht selbst beantworten. Angenommen du hast 100.000 Datensätze und willst pro Seite nur ~30 Anzeigen. Macht es da Sinn, alles auzulesen?

In diesem Fall kann ich aber nicht im DataGridView die Illusion erzeugen, dass ale 100.000 Datensätze drinnen sind (mit Hilfe des Scrollbalkens), sondern muss eine Möglichkeit der Navigation zur Verfügung stellen, z.B. Buttons mit den Beschriftungen "Die dächsten 30 Datensätze anzeigen", "Die vorige 30 Datensätze anzeigen"?

Vielen Dank,
Andreas

-
885 Beiträge seit 2004
vor 17 Jahren

In diesem Fall kann ich aber nicht im DataGridView die Illusion erzeugen, dass ale 100.000 Datensätze drinnen sind (mit Hilfe des Scrollbalkens), sondern muss eine Möglichkeit der Navigation zur Verfügung stellen, z.B. Buttons mit den Beschriftungen "Die dächsten 30 Datensätze anzeigen", "Die vorige 30 Datensätze anzeigen"?

Klar, aber ist ja kein Problem. Du gibst als DateSource (am besten über einen BindingSource) die gerade aktuellen 30 Datensätze.

M
MasterOfCoding Themenstarter:in
131 Beiträge seit 2004
vor 17 Jahren

Vielen Dank!

Verstehe. Natürlich ist das kein Problem.

Wäre noch toll, wenn sich noch jemand äußert, wie das er/sie handhabt (Nachdem du geschrieben hast, dass das nur in deiner Firma so gemacht wird und es andere Möglichkeiten geben könnte)...

Vielen Dank,
Andreas