Laden...
Avatar #avatar-1903.gif
.unreal myCSharp.de - Member
Sexbombenentschärfer Nähe Zürich Dabei seit 26.11.2004 563 Beiträge
Benutzerbeschreibung

Forenbeiträge von .unreal Ingesamt 563 Beiträge

06.06.2006 - 18:59 Uhr

Hallo stephanruhland

finde es absolut schlimm.

Was findest du so schlimm? Das DataSet ist eine sehr mächtige Klasse, harziger Einstieg, aber wenn man sich eingearbteitet hat, kann man dabei super Daten verarbeiten, anzeigen usw.

Der SqlDataAdapter.Update() Befehler guckt sich den RowState von den Rows des DataSets an! D.h. der RowState eines zu löschenden Datensatzes MUSS Deleted sein!

Mit DataTable.Rows.Remove(dataRow) löschst du den Datensatz raus, dann ist dieser gar nicht mehr vorhanden --> der DataAdapter sieht keinen Datensatz, welcher als gelöscht markiert wurde!

DataRow.Delete() ist der richtige Weg.
MSDN:

If the RowState of the row is Added, the row is removed from the table.

The RowState becomes Deleted after you use the Delete method. It remains Deleted until you call AcceptChanges.

A deleted row can be undeleted by invoking RejectChanges.

Rufst du AcceptChanges() vor dem Update() auf?

Wenn es bei dir nicht klappt, musst du mal deinen DeleteCommand beim SqlDataAdapter angucken, dort müsste der Hund begraben sein.

Wie hast du die SELECT-, INSERT-, UPDATE- und DELETE-Commands zugewiesen? Ich hoffe nicht mit dem SqlCommandBuilder =)

Gruss,
.unreal

06.06.2006 - 10:36 Uhr

Wäre möglich! Entweder du wirfst in deiner anderne Klasse einen Event, und fängst ihn z.b in der Formklasse. Anders rum könntest du aber auch einfach ne Exception werfen, und diese dann abfangen im Button_Click


public void button_Click(...)
{
   try
   {
        deineMethodeWelcheExceptionWerfenKann();
   }catch(DeineException ex)
   {
        Messagebox.Show(ex.Message);
   }
}

.unreal

01.06.2006 - 14:14 Uhr

Wenn du die Einheit nur zur Darstellung verwendeste (z.B. in Textboxen usw.), würde ich DataBinding verwenden, und mit den Events Binding.Parse resp. Binding.Format arbeiten.

.unreal

31.05.2006 - 23:37 Uhr

reicht dir die Funktionalität im Internetexplorer/Firefox nicht aus?!

31.05.2006 - 23:21 Uhr

sorry für meine knappe Antwort, aber diese Frage taucht sehr sehr sehr oft auf, darum sollten diese Stichworte ausreichen, zumal du mit der Eingabe dieser Begriffe in der MSDN-Doku genau das kriegst, wonach du suchst, inklusive Beispiel 🙂

Gibt ja bereits heute einen Thread, der das gleiche thema anspricht --> "timer und Label(thread)"

.unreal

31.05.2006 - 19:49 Uhr

Contol.Invoke()
Control.BeginInvoke()
Control.InvokeRequired

Gruss,
.unreal

30.05.2006 - 11:25 Uhr

Original von GambaJo
Doppelklick wo rein?

in das leere Feld neben dem Event

Das Event, was ich brauche ist ja nicht da drin. Dann gibt es diesen Event auf dem selektierten Member nicht

.unreal

30.05.2006 - 11:22 Uhr

Original von svenson

Original von .unreal
Warum man eine Konvertierung ohne Try/Catch machen will verstehe ich auch nicht!

Weil das Werfen von Exceptions ziemlich lange dauert. Wenn jede 2. "Zahl" aus irgendeinem Grund keine Zahl ist, ist TryParse() dem alten Parse() vorzuziehen.

In 2.0 sollt eman TryParse verwenden, kein Thema - ich ging von 1.1 aus.

Es hört sich nicht an, als ob hier auf Try/Catch aus Performancegründen verzichtet werden will, mehr nach dem Motto "ich mag das nicht". Sorry falls ich den falschen Eindruck habe.

.unreal

30.05.2006 - 11:17 Uhr

Original von marsgk
(+|-)?[0-9]+
Allerdings kann noch immer ein Overflow passieren.

falsch, ABC12 würde 12 zurückliefern, obwohl ABC12 keine Zahl ist.

30.05.2006 - 11:16 Uhr

Original von phunkydizco
Das müsste doch eigentlich mit Regular Expressions gehen. Bloß wie?

viele Wege führen nach Rom, wieso du Regex verwenden willst ist mir ein Rätsel, es gibt ja bereits eine "einfachere" Methode!

Warum man eine Konvertierung ohne Try/Catch machen will verstehe ich auch nicht! Dieses Konstrukt beisst nicht. Wenn du es tatsächlich mit Regex ausprobieren willst, dann guck ma in die Doku, für dieses Problem gibt es eine Musterlösung, wenn ich mich nicht irre. Allerdings überprüfst du mit Regex nur das Format, schlussendlich musst du das Resultat immernoch in einen Integer umwandeln --> Int32.Parse()

.unreal

29.05.2006 - 09:03 Uhr

klick da halt mal doppelt rein.

oder schreibe <objektname>.<eventname> [tab 2 mal drücken] im code

das steht übrigens in jedem .NET 2.0 Buch

.unreal

25.05.2006 - 18:57 Uhr

Original von herbivore
Hallo rockthecity,

ich will dich nicht frustrieren, aber da C# Events unterstützt, ist das Observer-Pattern für C# eigentlich überflüssig und kommt in der Praxis quasi nicht zum Einsatz.

herbivore

Mit DataBinding braucht man fast keine eigene Events mehr für die Darstellung von Daten 🙂

25.05.2006 - 01:13 Uhr

Ich sehe das Problem nicht ganz. Der DataAdapter wird brav mit den entsprechenden Commands bestückt, und schon kanns losgehen, praktischer gehts nicht 🙂

Finger weg vom CommandBuilder! Guckt euch den DOT NET PRO Artikel an, der erklärt das. Ohne ist es auch ziemlich einfach: Stored Procedure oder SQL-Query mit parameter erzeugen, und diese mit SqlCommand.Parameters.Add() hinzufügen. Super sache, ich bin begeistert von diesem System 😁

.unreal

25.05.2006 - 01:07 Uhr

Hallo

Ich verstehe nicht ganz, warum man herausfinden muss, ob es geschlossen oder geöffnet wurde. Was z.B. beim schliessen passiert sollte im Form Close Event vom Child selber gehandelt werden. Wenn nicht, dann sag uns bitte mal, was du genau in diesem Event tun willst.

Gruss,
.unreal

24.05.2006 - 20:58 Uhr

Original von Merlin20
Dazu hätte ich auch eine Frage. Wo findet genau findet man denn die Komponente für .NET 1.1?
Die Highlighter Komponenten kann man anpassen, oder?

Original von talla
Ja, musst mal direkt auf der Sourceforge Seite gucken,da gibts auch ältere Versionen.

24.05.2006 - 18:07 Uhr

Original von Marcel Göllner
Hallo!

Ja benutze ich! Wie geht das Mappen? Im DataSetDesigner? Oder wo? Und muss ich dann einen Update durchführen, wenn ja wie? Oder macht er das automatisch?

Gruß Marcel

Wo -> SqlCommand, denn du dann beim Insert-, Update- oder DeleteCommand hinzufügst. SqlCommand.Parameters.Add() wäre die Methode fürs Mappen.

Gruss,
.unreal

24.05.2006 - 17:24 Uhr

Ich habe dir die Properties bereits aufgelistet. Muss ich dir noch sagen, dass du in der MSDN Doku SqlDataAdapter.UpdateCommand eingeben musst? Dort hast du alles, inklusive Snippets.

DataSetDesigner: würde ich die finger davon lassen. Verwende einen Designer/Wizard erst, wenn du diesen Code auch selber schreiben könntest. Die Struktur eines DataSets kriegst du mit SqlDataAdapter.fill. Verwendest du Stored Procedures oder Sqlqueries?

Hm, wie kann ich nun den CommandText ändern?

Guck dir die SqlCommand Klasse an!

.unreal

24.05.2006 - 16:58 Uhr

einwenig mehr Informationen wären praktisch. Ich nehme an du arbeitest mit einem SqlDataAdapter, füllst ein DataSet mit der Fill-Methode und benutzst DataBinding um diese Daten darzustellen. Das Gegenstück zu Fill() wäre update, siehe SqlDataAdapter.UpdateCommamd, InsertCommand& DeleteCommand, ist sehr einfach, kannst die DataSet-Spalten direkt auf die Parameter mappen.

Gruss,
.unreal

23.05.2006 - 17:49 Uhr

DataBinding wäre noch schicker, da brauchst du die ArrayList gar nicht zu updaten, da dies automatisch per DataBinding geht.

Gruss,
.unreal

22.05.2006 - 23:13 Uhr

gibt es solche 100% Angebote auch in der Schweiz? =)

22.05.2006 - 23:11 Uhr

Hab sehr gute Erfahrungen mit Camtasia Studio gemacht (ist aber schon 1.5 Jahre her). Mindestens zu dieser Zeit gab es eine gratis Testversion, die gut für sowas taugen würde.

Gruss,
.unreal

22.05.2006 - 20:01 Uhr

schnapp dir n Buch, das bringt so nix.

22.05.2006 - 15:53 Uhr

Original von Marcel Göllner
Aber es gibt keine Möglichkeit der Kommunikation von mehreren Spalten in einer Datenbank und mehreren Spalten in einer ComboBox oder?

Ähm, was willst du genau?! Was soll mit was Kommunizieren? In der ComboBox gibt es den ValueMember (eindeutiger wert wie z.B. die ID) und den DisplayMember (das was angezeigt wird, frei gestaltbar, ist aber EIN String), das reicht aus. Wenn du mehrere Spalten als DisplayMember haben willst, dann überschreibe wie marsgk beschrieben hat die ToString Methode, oder bei einem DataBinding verwendest du den Format() Event.

.unreal

22.05.2006 - 14:26 Uhr

Original von norman_timo
Hallo .unreal,

mit VS2005 geht auch direkt nach Deinem [TAB] drücken ein weiteres [TAB] drücken, um dann auch noch einen Methodenrumpf für die Ereignisbehandlung generieren zu lassen 😉

Geht aber wirklich erst ab 2005.

Gruß
Norman-Timo

das habe ich ja geschrieben 🙂

und drückst nochmals tab.

.unreal

22.05.2006 - 13:43 Uhr

Was gibt es da zu glauben?! Verwende File.Append

Gruss,
.unreal

22.05.2006 - 10:01 Uhr

wenn dir wie mir diese Klickerei nicht wirklich gefällt, dann wirkt tab wunder 😁

Schreib ma im Editor button1.Click += (Tab) [jetzt hat er den richtigen eventhandler hingeschrieben] dann tippst du den namen der methode, welche den event fangen soll (kannst auch nix schrieben, dann kommt das standard name_eventname) und drückst nochmals tab.

Das ist cool =) Maus ist zu weit weg g

Gruss,
.unreal

22.05.2006 - 08:54 Uhr

Original von FZelle
Ja, vorallem kennen wir auch diese eine Bibliotek, die es gibt, die nicht finktioniert.

eine bibliothek die nicht funktioniert? Die könnte von mir sein 🙂

21.05.2006 - 13:26 Uhr

Das DataGridView zeigt nur daten an, wenn du daten löschen willst, musst du das bei der DataSource tun. Bei einem DataSet wäre es z.B. dataSet.tables(0).rows.clear();

gruss,
.unreal

19.05.2006 - 23:17 Uhr

hi zebhed

du musst die methode noch mit nem attribut versehen:


[STAThread]
public static void Main()

die keinerlei GUI-Klassen importiert

ich nehme an du meinst "using System.Windows.Forms" ?

Ohne dieses Using würde es System.Windows.Forms.Application.Run(new Form()) heissen.

Gruss,
.unreal

17.05.2006 - 09:00 Uhr

noch bizarer ist, dass die $nderungen vom DataBinding in der DataTable vorhanden sind, die Rows sogar als DataRowState.Added markiert. Trotzdem liefert mir GetChanges() eine DataRow ohne Werte.

Nach CurrencyManager.EndCurrentEdit() werden auch Änderungen nach diesem Aufruf korrekt übernommen... warum?

Gruss,
.unreal

17.05.2006 - 08:55 Uhr

genau

Mit Databinding gings auch nicht, aber wenn ich dort CurrencyManager.endcurrentedit() mache funktionierts.

Das ist mir ein Rätsel, das DataBinding fügt im Hintegrund die Datensätze auch mit rows.add hinzu...

.unreal

17.05.2006 - 08:43 Uhr

hallo

Ich habe folgendes Problem

Ich erstelle eine neue Datarow mit dr = ds.tables(0).NewRow() (struktur ist bereits vorhanden). Anschliessend fülle ich die DataRow mit Informationen, und füge diese mittels ds.tables(0).rows.add(dr) hinzu.

Rufe ich im debugger anschliessend ds.tables(0).getChanges() auf, kriege ich zwar ein DataRow, mit RowState.added, allerdings stimmen die Werte nicht (sind alle DBNull und 0).

Was habe ich vergessen? acceptchanges kommt nicht in frage, da ich
die daten via sqldataadapter.update() in die db spiele.

Danke für eure Hilfe

gruss,
.unreal

15.05.2006 - 21:15 Uhr

naja, bei mir gehts ohne kaffee ganz gut 🙂

12.05.2006 - 16:29 Uhr

Hallo

Ich brauche die Methode

SqlCommand.Parameters.Add(SqlParameter value, SqlDbType sqldbtype, int size, string sourcecolumn)

was muss ich bei size eintragen, wenn ich als SqlDbType SqlDbType.DateTime habe? Wo kann man sowas nachschauen? Finde in der MSDN nix 😠

Gruss,
.unreal

11.05.2006 - 18:17 Uhr

Original von herbivore
Hallo .unreal,

warum willst du das verhindern? Die Klassen wären ja auch benutzbar, wenn sie in der Exe sind.

herbivore

das habe ich jetzt eben vorhin ausprobiert, und mit erstaunen festgestellt, das dies möglich ist.

Blöde Frage meinerseits 😠

Gruss,
.unreal

11.05.2006 - 15:52 Uhr

Hallo Community

Ich habe Modelklassen in ein separates Projekt ausgelagert, die werden als dll kompiliert, damit ich sie mit NUnit Testen kann. Nun muss ich zu meinem Programm immer die exe + die dll mit den Modellklassen mitliefern. Gibt es eine möglichkeit, diese dll so zu kompilieren, dass sie nicht in jedes andere programm eingebunden werden kann?

Gruss,
.unreal

08.05.2006 - 22:52 Uhr

Hi handycommander

Original von handycommander
ich habe ein php skript, in dem ich mehrere "echo" als rückgabe werte habe...

Was du mit echo ausgibst, ist lediglich das, was im body der HTTP-Response drinsteht.

beispiele für die echos:
echo $_SERVER das fruchtet nicht wirklich, var_dump($_SERVER) würde da schon mehr sinn machen. $_SERVER ist ein vordefiniertes Array mit Informationen über den Server.

ich denke du meinst wohl [php]echo $_GET["server"];[/php]

ich möcht es also so machen, dass ich in meinem programm die site mit dem php skript NIE sehe... sondern eben nur die echos in labels ausgeben werden...

ich verstehe nicht was du machen willst, nicht mal in welcher programmiersprache 🙂 im threadtitel steht c#, im text delphi?

Grundsätzlich kannst du Webseiten mit HttpWebRequest in einen String einlesen. Mit diesem String kannst du dann machen was du willst. Such mal hier im Forum nach dieser Klasse.

Klär uns auf, und dann helfen wir weiter 🙂

Gruss,
.unreal

05.05.2006 - 13:56 Uhr

Hi Shaveman83

Was funktioniert bei dir nicht? Der Code ist in Ordnung.

Gruss,
.unreal

05.05.2006 - 09:04 Uhr

Hi spacemutron

Ich kann mich herbivores Aussage nur anschliessen! Schau immer wieder im Forum vorbei, dann siehst du andere Probleme, Meinungen & Lösungswege! Vieleicht interessiert dich eine Frage eines Users auch und du findest beim Nachschlagen eine Lösung. Das hat doppelte Auswirkung, du hast was gelernt und jemandem geholfen 😃

Gruss,
.unreal

05.05.2006 - 08:57 Uhr

Wenn du wirklich nur die HTTP Requests/Responses suchst, kann ich dir nur den Efftech HTTP Sniffer empfehlen. Ist einiges komfortabler als der Etherreal für solche sachen!

Gruss,
.unreal

05.05.2006 - 00:04 Uhr

Original von herbivore
... sind die möglichen Änderungen ja vermutlich auch der Grund, warum das Binding einer Hashtable nicht funktioniert.

Ja, der Index ist nicht irgendein objekt, sondern ein Integer. Schade dass eauch die SortedList kein IList implementiert, die ist auf beide arten ansprechbar. Ich kenne mich da noch zuwenig aus um genau zu verstehen, warum das so ist, wird wohl auch seinen Grund haben.

.unreal

04.05.2006 - 23:12 Uhr

doch über das printdocument, ist glaubs in printersettings.printername

gruss,
.unreal

04.05.2006 - 15:51 Uhr

Zurück zum Problem, hatte wieder Zeit mir Gedanken zu machen:

Herbivore, mit deinem Vorschlag könnte ich die Keys/Values binden, allerdings ist der Nutzen relativ klein, da die Methode - wie der Name schon sagt - das Array kopiert und nicht referenziert. Im Model events zu implementieren, damit ich bei Änderungen die beiden Arrays erneut kopieren kann, finde ich nicht sehr sauber. Ich denke da ist eine ArrayList sauberer. Sehr schade, Hashtables können sehr komfortabel sein 🙂 Falls noch jemand eine Idee hätte, wäre ich natürlich immernoch sehr interessiert.

.unreal

04.05.2006 - 15:27 Uhr

suchfunktion vom board, klasse printdocument

04.05.2006 - 12:55 Uhr

Hi Herbivore

Das war mir schon von Anfang an klar, darum auch diese Antwort 😃

.unreal

04.05.2006 - 10:44 Uhr

ich such gerade verzweifelt das "Dieser Beitrag wurde 1 mal editiert..." 😛

Danke & Gruss,
.unreal

04.05.2006 - 09:39 Uhr

Hallo Herbivore

Dieses kleine Projekt muss ich leider in .NET 1.1 entwickeln. List<T> ist ja neu in .NET 2.0. Sorry dass ich das erst jetzt sage 🙁

Gruss,
.unreal

04.05.2006 - 08:46 Uhr

Hi LastGentlemen

Das funktioniert leider nicht, weil Hashtable IList nicht implementiert!

An unhandled exception of type 'System.Exception' occurred in system.windows.forms.dll

Additional information: Complex DataBinding accepts as a data source either an IList or an IListSource

03.05.2006 - 21:55 Uhr

Hi Herbivore,
wie hast du das mit dem Keys binden gemeint?

Gruss,
.unreal

03.05.2006 - 15:32 Uhr

Original von talla
Das .Net Framework bietet da AFAIK nichts. Und das ist auch gut so! Das ist meine Maus g