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.
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.
Zitat
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
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.
Zitat
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.
Wie würdest du dir die Implementierung von deiner Idee vorstellen. Ich kanns mir nur so denken: Ich schreib da halt n paar Vordefinierte Worte rein und per Random such ich dann halt eine aus. Mögliche wäre auch noch 2 Zahlen anzufügen oder so.
Äh ne, glaube das geht auch besser. Meine irgendwo in nem Referat mal gelesen zu haben, wie "auszusprechende Wörter" aufgebaut sind. Da gibts ne Formel für. Mit Umlauten etc. Aber falls das zu komplex ist, lass es sein.
nicht schlecht. Aber noch ne kleine Idee: Wäre super, wenn man auch aussprechbare Wörter generieren könnte (für nicht so sicherheitskritische Anwendung).
habe gerade gesucht, jedoch auf die Schnelle nichts gefunden. Bin aber der Meinung vor nicht alzu langer Zeit hier genau die Antwort auf deine Frage gelesen zu haben.
Hm, dann könnte ich mir nur vorstellen, dass dies eine eigene Klasse war (abgeleitet von MaskedTextBox) und die Einstellungen gespeicehrt werden. Sollte nicht das Problem sein dies umzusetzen.
Ich kenne das Problem. Die ReadOnly-Eigenschaft bezweckt ja, dass man das Control sauber sieht, man es aber nicht "benutzen" kann. Bei der Textbox kann man zb. nen Text anzeigen und oftmals genutzt, auch raus kopieren. Manchmal will man ne Art Anzeige bauen, die dir anzeigt, ob ein Wert true oder false ist. Dafür würde ich gerne die Checkbox mit Readonly nehmen, was aber nicht geht, weils die Eigenschaft nicht gibt. Schade eigentlich vielleicht gibts das ja in .NET X *g*
Aber mal was Produktives:
- Du könntest, falls ich mit true/false Recht habe, - auch wenn es nicht gerade schön aussieht - eine Combobox nehmen.
- Oder du nimmst einfach eine PictureBox und legst das Image rein (Checkbox)
- Oder du versuchst, selbst son Control nachzubauen, was aber den größten Aufwand machen wird.
Wenn du programmieren kannst, wie du sagst, dann hast du wohl noch nie ne IDE benutzt. Das Drag&Drop von Controls ist ja wohl selbst für Anfänger machbar.
Unabhängig davon: Wie siehts aus mit Windows.Form, Interesse daran? Da gibts auch viel Interessantes aufm Markt.
Es gibt hier im Forum viele Diskussionen über Bücher und die Lernmethodik. Wer kein Geld hat, dem sei auch der guide to C# (siehe Menü) und die Galileo Open Books ans Herz gelegt.
Dir kann hier keiner das Programmieren beibringen.
Ja das wusste ich, nur geht es ja auch wiederrum SQL, etc.. aber tut ja nichts zur Sache. Hab ich Glück gehabt, dass es im richtigen Forum gelandet ist
//EDIT: Hab ne Lösung:
Da ja das BindindSource an das DataGridView, bzw. umgekehrt, gebunden ist, wähle ich das Event Selection_Changed vom DataGridView und nutze es wie folgt:
Nun weiß ich bzw. die BindingSource, welches Element im DataGridView selektiert ist, was mir wiederrum die Möglichkeit gibt, auf folgendes Event zu reagieren bzw. es wie folgt zu nutzen:
Damit habe ich also meine Id um weiter zu arbeiten. Thread gelöst. Machmal sieht man den Wald vor lauter Bäumen nicht. Vielleicht hilft es aber jemand Andrem, der ein ähnliches Problem hat.
in meinem Projekt wurde über den Assistenten eine Datenquelle (SQL-DB) eingefügt. Dieser hat auch direkt ein DataSet und einen DataAdapter mit allen Tabellen angelegt. Das DataSet habe ich per DataSource an ein DataGridView gebunden, woraufhin eine BindingSource angelegt wurde, was wohl jetzt diese Struktur hat:
Anfangs war ich etwas verwirrt von den vielen Objekten die angelegt wurden.
Im ersten Schritt sollten Daten in die DB geschrieben werden. Dies realisierte ich, in dem ich DataAdapter.Insert(neuer Datensatz) ausführte und DataAdapter.Fill(DataSet) aufrief.
Der nächste Schritt sollte ein Editieren bestehender Datensätze werden. Dazu wollte ich also auf das DoubleClick-Event der Zelle des DataGridViews regieren und den Datensatz anzeigen.
Da ihr nun den Hintergrund kennt, stelle ich mein Problem da:
Um den Datensatz anzuzeigen benötige ich die Id des Datensatzes. Wie komme ich an diese Id? Ich könnte zwar die selektierte Spalte und Zeile des DataGridViews herausfinden und den Inhalt nehmen, was der Id entsprechen würde, aber ich finde das nicht sehr gut gelöst. Gibt es eine bessere Möglichkeit? Ich könnte mir vorstellen, dass man irgendwie direkt auf die ObjektId des DataSets zugreifen kann, stellt sich nur die Frage, ob das DataSet mitbekommt, dass gerade Zeile XY selektiert wurde und die entsprechende Id nimmt.
Hoffe ihr habt mich verstanden.
P.S.: Wusste leider nicht in welches Forum. Da es um eine DataSet / DataBinding geht und das eine Control ist, stelle ich es mal hier rein.
es ist schade das ich nicht eine Farbe komplett transparent machen kann, sondern nur einzelne Pixel. Diese Funktion gab es im alten Microsoft Photo Editor von Windows XP und die war super. Mir ist kein anderes Programm mit dieser Funktion bekannt, aber ich mache auch nicht oft Fotobearbeitung.
Photoshop
Generell kann das Programm, dafür das es kostenlos ist, schon ne ganze Menge. Leider reicht das noch nicht, weil es auch viele andere Tools gibt, die weit aus mehr bieten, als das was Paint.NET kann. An Photohsop führt allerdings kein Weg dran vorbei 8)