DataGridView

05/06/2009 - 04:20 von Stephan Stone | Report spam
Hi zusammen,

Hab mal eine blöde Frage.
Will für eine einfache DB Tabelle ein kleines Form erstellen womit ich alle
Access schnell die Daten editieren kann.
Dafür müsste ja eigentlich das DataGridView wie geschaffen sein oder?
Hab zwei kleine Tabellen in Access mit einer Relation zueinander.
Hab da jetzt zwei DataGridView zu erstellt und mit zwei Button auch das
Update der DB reallisiert.
Rein von der Funktion gesehen geht auch alles.
Nur hab ich damit zwei kleine Probleme.

Das vermutlich kleinere Problem ist ein Fehler beim Editieren der Daten.
Wenn man ein falsches Format in eine Zelle schreibt, bekomm ich eine
Fehlermeldung.
Würde ja gerne eine Fehlerbehandlung schreiben aber weis nicht wohin.
Wenn man den Fehler nicht behebt kommt man sogar gar nicht mehr aus dem
Programm raus.
Also irgendwie unschön.

Das größere Problem dürfte sein, ich hab jetzt einfach über Datenquellen die
Verbindung zu der DB aufgebaut.
Leider habe ich diese Info noch nicht. Ich lese den Pfad zur DB aus einer
INI aus.
Bisher hab ich nur mit SQL Befehlen gearbeitet da hab ich einfach eine
OLEDBConnection aufgebaut und alles ging.
Aber jetzt baue ich ja die Verbindung nicht auf. Wie kann ich den
Connectionstring àndern?
Hab ihn zwar gefunden im Settings.Designer.cs bzw natürlich in
Settings.settings.
Allerdings ist da nur der Get drin.

public string DatenConnectionString {
get {
return ((string)(this["DatenConnectionString"]));
}
}

Und da das auto generated Code ist will ich den nicht àndern bzw macht
vermutlich auch nicht so viel Sinn.
Wàre ja bei der nàchsten Änderung sowieso gelöscht.

Gibts da einen einfachen Weg den String zu àndern? Also ich hab zum
erstellen der DataGridView die Original DB angegeben.
Also alle Spalten usw sind schon richtig, aber halt spàter auf dem
Zielrechner liegt die DB wo anders.

Oder ist das schon zu viel für den View? Muss ich mir da selber eine Tabelle
basteln?

Danke

mfg
Stephan
 

Lesen sie die antworten

#1 Frank Dzaebel
05/06/2009 - 07:27 | Warnen spam
Hallo Stephan,

Will für eine einfache DB Tabelle ein kleines Form erstellen womit
ich alle Access schnell die Daten editieren kann.
Dafür müsste ja eigentlich das DataGridView wie geschaffen sein oder?



ja.



Hab zwei kleine Tabellen in Access mit einer Relation zueinander.



Normal hàtte man dann über das Datenquellenfenster
zunàchst die übergeordnete Tabelle in die
Form per Drag&Drop hereinziehen sollen,
dann im Datenquellenfenster diese Tabelle aufklappen
und die untergeordnete von dort hineinziehen.
Evtl. wie hier:

[Master/Detail mit DataSet-Designer]
http://dzaebel.net/MasterDetail.htm



Das vermutlich kleinere Problem ist ein Fehler beim Editieren der
Daten. Wenn man ein falsches Format in eine Zelle schreibt, bekomm
ich eine Fehlermeldung.
Würde ja gerne eine Fehlerbehandlung schreiben aber weis nicht wohin.
Wenn man den Fehler nicht behebt kommt man sogar gar nicht mehr aus
dem Programm raus.



Es sollte ganz grob das DataError Ereignis behandelt werden.
Obwohl man ganz trivial eine MessageBox aufpoppen lassen kann:

[Exemplarische Vorgehensweise: Behandeln von Fehlern, die wàhrend der
Dateneingabe im DataGridView-Steuerelement in Windows Forms auftreten]
http://msdn.microsoft.com/de-de/lib...23xx4.aspx

... ist es hàufig auch vorteilhaft, der Zelle selber diesen
Fehler über ein kleines ErrorProvider Icon in der Zelle
selber anzuzeigen:

[How do I show the error icon when the user is editing the cell? - Windows
Forms FAQs]
http://windowsclient.net/blogs/faqs...-cell.aspx

[DataGridViewCell.ErrorText-Eigenschaft (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...rtext.aspx



Leider habe ich diese Info noch nicht. Ich lese den Pfad zur DB aus einer
INI aus.



Nein, mache das aus einer XML-Datei, bzw. den typsicheren
Settings (INI ist Legacy Technologie). Der Benutzer gibt die
Konfiguration dann sauber geführt z.B. über ein PropertyGrid
in der Applikation ein. Ausserdem hast Du die ja auch schon
in den Settings. Wenn Du daraus ein benutzerdefiniertes
Setting machen willst, kannst Du ggf. so vorgehen:

[PropertyGrid ConnectionString Editor]
http://dzaebel.net/PropertyGridConn...String.htm


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen