Laden...

Forenbeiträge von Holzbrett Ingesamt 72 Beiträge

10.02.2010 - 15:06 Uhr

@ Rainbird: Die Sache mit RMI gefällt mir. Das Szenario im Demodokument, dass Du verlinkt hast, funktioniert auch gut. Das macht mich jetzt glücklich 😃

@ JAck30lena: Dein Hinweis werde ich auch noch prüfen, vllt. geht's damit ja noch einfacher 😃

Viiieeelleenn DANK!

Gruß
Holzbrett

09.02.2010 - 14:15 Uhr

Hallo,

da die Themen diesbezüglich schon etwas älter sind, frage ich einfach mal um den aktuellen Stand wegen.

Folgendes Szenario: Es gibt einen J2EE Server, welcher via RMI eine API bereitstellt. Nun will ich diese mit .Net nutzen. Anfänglich ging ich von einer Hessian-Schnittstelle aus, habe also schon via IKVM die entsprechende API übersetzt. Das funktioniert prinzipiell ganz gut. Aber leider reicht die Hessian-Schnittstelle wohl nicht hin. Also doch per RMI. Nun habe ich schon Trials diverser .Net Java Bridges (JNET, JNB) ausprobiert, doch leider gehen all diese wohl davon aus, dass Java-Programm unter ihrer Kontrolle zu starten. Und da gehen die roten Lichter der Betreiber an; Zusatztool auf dem Server wäre OK, alles andere nicht.

Nun muss es doch aber irgendwie möglich sein, diese RMI Schnittstelle zu nutzen. Weiß da jemand was?

Danke und Grüße
Holzbrett

25.03.2009 - 13:49 Uhr

Hallo,

ein Bekannter wollte gerne seine Outlook Kontakte via C# auslesen. Das funktioniert auch prächtig - ist ja ganz einfach. Aber nun hat er das Problem, dass er das für OL 2003 und 2007 benötigt. Mir ist jetzt spontan keine Lösung eingefallen, außer zwei Programmversionen mit verschiedenen Outlook-Interop Verweisen zu erstellen.

Weiß hier vielleicht jemand, ob man das auch eleganter, dynamischer lösen kann?

Vielen Dank
Holzbrett

12.11.2008 - 09:32 Uhr

Hallo liebe Leute..

Ich habe da mal ne Frage: Ich habe ein GridView in dessen erster Spalte eine CheckBox (über Templates) sitzt (also eine für jede Zeile). Der Benutzer muss diese auch anklicken können - soll also nicht nur zur Anzeige dienen. Nun komme ich ins RowDataBound und je nach DataKeyValue des Feldes setze ich die CheckBox entweder auf false oder true.

Das funktioniert soweit. Nun kann der Benutzer auch ein PopUp für die Detailansicht öffnet, in dem er den Status für diesen Datensatz ebenfalls ändern kann - und dies auch macht, woraufhin sich die eigentliche Seite neu lädt (Postback). Und jetzt kommt's: Beim Debug sehe ich, dass die CheckBoxen Codeseitig richtig befüllt werden, jedoch in der Anzeige unverändert bleiben. Also kommen schon die richtigen Daten, aber es wird wohl nicht erneut herausgeschrieben.

Nun dachte ich mir - naja - wird wohl irgendwie zu früh oder zu spät geschehen. Also habe ich mir im RowDataBound die Daten einfach in eine Hashtable genommen und im OnPreRenderComplete diese dann in den Cells der Rows des GridViews gesetzt. Und siehe da: Es geht.

Und sogar mein zweites Problem wurde damit behoben: Auf der Seite ist nun auch noch eine DropDownList (Select) mit der man das Datum ändern kann, worauf hin ebenfalls ein Postback geschieht. Nun lassen wir mal die erste Zeile angeklickt und wechseln das Datum -> Postback -> Daten rausschreiben (korrekt!) -> Die erste Zeile ist immernoch angeklickt - obwohl die Daten anders sind. Das Problem-Muster ist hier eigentlich das gleiche wie o.g..

Nun habe ich das ja wie o.g. über die Hashtable und dem PreRenderComplete gelöst. Aber nur lösen reicht mir nicht; ich würd gern wissen, wieso dieses Verhalten auftritt? Ich hoffe es findet sich jemand, der da eine Erklärung parat hat.

Vielen Dank schonmal
Andreas

09.06.2008 - 11:27 Uhr

Hallo!

So schnell hab ich noch nie selbst eine Antwort gefunden 😉.

Trial and Error hat folgendes ergeben: FtpWebRequest.Proxy einfach null setzen. Scheint standardmäßig den "IE"-Proxy zu verwenden.

Gruß
Holzbrett

09.06.2008 - 11:23 Uhr

Hallo!

Ich hab bereits davon gelesen, dass bei der Verwendung der FtpWeb* Klassen mit dem WebRequestMethods.Ftp.ListDirectory bei zwischengeschalteten Proxy u.U. eine HTML Seite als Response kommt.

Das ist bei mir leider der Fall. Obwohl die ganzen FTP Tools (leech etc.) das ja wunderbar hinbekommen. Nun also meine Frage: Wie kann ich die ganze Sache umgehen und eine einfache Dateiliste bekommen?

DANKE!

08.04.2008 - 15:52 Uhr

Hallo Peter,

habe das Problem gefunden.. Es lag daran, dass das Grid in einem UpdatePanel hängt, dessen PartialRendering-Eigenschaft auf true gesetzt war. Somit hat sich nur das Grid neu gezeichnet.

Trotzdem vielen Dank und Grüße
Andreas

08.04.2008 - 11:20 Uhr

Hallo Peter,

erstmal Danke für Deine Antwort.

Also das mit dem DataBind funktioniert leider nicht. Im Load Ereignis der Seite mache ich erst einen Nodes.Clear() und fülle dann das TreeView Node für Node mit Daten. Dann klappe ich das TreeView wieder aus. Beim Löschen der Daten im Grid wird allerdings nicht der PageSubmit ausgeführt.

Vielen Dank
Andreas

07.04.2008 - 22:14 Uhr

Hallo!

Ich habe leider wieder ein Problem: Ich habe ein TreeView dass ich im Code mit Daten fütter. Daneben habe ich ein GridView, dass mir den Inhalt der jeweiligen Kategorie (des Nodes) anzeigt. Das klappt alles wunderbar.

Nun soll sich das TreeView bei jedem Pageload neu erstellen, undzwar auch wenn im Grid eine Kategorie hinzugefügt oder entfernt wird.

Programmatisch klappt das löschen, lesen und erstellen der neuen Nodes. Jedoch ändert sich am Tree nichts (ich klappe es im Code anhand des gemerkten ValuePath wieder an die richtige Stelle auf). Erst wenn man ein Node im Tree anklickt, erscheinen die Änderungen. Das ist natürlich ärgerlich und IMHO auch nicht Sinn des TreeView.

Leider fand ich keine Möglichkeiten wie BeginUpdate etc. wie bei WinForms um ein verwendbares Update des Tree zu erlangen.

Wißt ihr da vielleicht eine Möglichkeit?

Vielen Dank
Andreas

07.03.2008 - 16:42 Uhr

Hallo,

Du könntest so tun als ob das ganze Form eine Titelleiste wäre:


const int WM_NCHITTEST = 0x0084;
 const int HTCAPTION = 2;
 protected override void WndProc(ref Message m)
 {
 if (m.Msg == WM_NCHITTEST)
 {
 Point pt = this.PointToClient(new Point(m.LParam.ToInt32()));
 if (ClientRectangle.Contains(pt))
 {
 m.Result = new IntPtr(HTCAPTION);
 return;
 }
 }

 base.WndProc (ref m);
 }


Gruß
Andreas

07.03.2008 - 08:26 Uhr

Vielen Dank, ErfinderDesRades 🙂 .. Das hat die Suche schön einschränken können und hier ist das Ergebnis: http://www.codeproject.com/KB/vb/ClickThroughWindows.aspx (zwar VB.Net, aber ist ja alles das gleiche 🙂 )

@ psy: Vielen Dank auch für diesen Hinweis, das bleibt mir im Gedächnis.

Vielen herzlichen Dank an alle!
Gruß
Holzbrett

06.03.2008 - 21:35 Uhr

Aber meinst Du echt, dass die Entwickler dieser Uhren (ClocX, TPClock) sich extra aufwendig die Hooks besorgen? ...

Das muss doch auch noch anders möglich sein.. Hmmm..

Gruß
Andreas

06.03.2008 - 17:40 Uhr

Okay, vielen Dank!

Kann ich das dann eigentlich auch irgendwie steuern? Also z.B. noch die Option, dass der Benutzer nicht hindurch klicken kann? Denn wenn ich frei auf dem Desktop rummale habe ich ja wahrscheinlich nicht den Komfort eines Forms mit Mausklick Events etc. oder?

Vielen Dank
Holzbrett

06.03.2008 - 09:36 Uhr

Wow.. na das klingt doch gut! Vieeeeellen Dank!

PS:

Release beim Beenden nicht vergessen. Was meinst Du damit? 🙂

Gruß
Andreas

06.03.2008 - 08:58 Uhr

Hallo!

Ich weiß, dass der Fred schon sehr alt ist, jedoch ist es ja genau das was ich will.

Doch es muss doch noch einfacher gehen als das o.g., oder?! Vielleicht kennt ja jemand dieses hübsche Uhrprogramm "ClocX", bei dem es ja möglich ist, durch die GUI hindurch zu klicken. Ich kann mir allerdings nicht vorstellen, dass der Entwickler das mit einem TransparencyKey-Pixel gemacht hat..

Habe mich zwar noch nicht so sehr mit den FormMessages befasst, aber es müsste darin doch möglich sein, oder? Ich meine, wenn man vorgaukeln kann, dass das ganze Form eine Caption ist, müsste man doch auch so tun können, als ob das Form gar nicht ist.

Vielen Dank schonmal an dieser Stelle

Andreas

09.10.2007 - 16:04 Uhr

Erstmal ein Gruß nach Krumbach. Das Mineralwasser ist wirklich klasse 🙂

Du könntest z.B. Form.Location in einem Timer regelmäßig die Postition des Cursors zuweisen.

Was allerdings dazu führt, dass auch bei stehenden Mauszeiger Berechnungen durchgeführt werden und das evtl. etwas stockt.

Gruß Holzbrett

09.10.2007 - 09:06 Uhr

Hmm.. Okay, so ginge das natürlich auch. Aber wäre es nicht einfacher - und u.U. performanter - ein kleines extra Form zu entwerfen, dass so funktioniert wie ich o.g. hab?!

Gruß Holzbrett

09.10.2007 - 07:53 Uhr

Das heißt im Klartext: Du hast ein Form, das prinzipiell nix anderes ist, als ein Kreis. Und dieser Kreis soll immer um den Mauszeiger platziert sein?

Nun, wenn das Form einen Kreis darstellt, dann heißt das, dass wenn der Kreis seine Position ändern soll, dass es einfach das Form tut. Kurz: Deine Form.Position muss der des Cursors folgen. Natürlich dann mit einem entsprechenden Deltawert, sodass der Zeiger auch immer in der Mitte bleibt.

[EDIT] Ich würde also das Zeichnen des Kreises in das Form OnPaint event setzen und bei MouseMove lediglich die Position des Forms anpassen. [DANKE LIEBE EDIT VON DER ELSE VOM SPARMARKT]

Gruß
Andreas as Holzbrett

08.10.2007 - 16:43 Uhr

hab grad nachgeschaut. Herbivore hat recht. aber ich würd mich nicht über eine solche Genauigkeit ärgern 🙂.

und wenn dann kannst du ja runden 😉

08.10.2007 - 16:28 Uhr

Der Fehler wird wohl wie schon gesagt am Problem mit Bogen- und Gradmaß liegen.

Was anderes kann ich mir nicht vorstellen.

08.10.2007 - 14:24 Uhr

Da hast Du recht 🙂 ...

Also vielen Dank!

Ich habs noch ein wenig verfeinert, in dem ich Context.Instance via Reflection nach dem letzten Vorkommen einer DataTable-Property durchsuche und daraus die - sofern vorhanden - Spaltennamen nehme. Aus dem Grund, da ich das vllt. mal in nem Control brauche, in dem ich mehrere DataTable-Properties habe; einen Namen festzusetzen ist unpraktisch und jedesmal den TypeConverter neu erstellen ist zeitaufwendig; da ist es also am einfachsten zu sagen, dass mein TypeConverter - oder eher StringConverter - sich die letzte DataTable-Property schnappt.

Nochmal vielen Dank für eure Hilfe!

Gruß Andreas as Holzbrett

07.10.2007 - 20:29 Uhr

Wenn, dann würde das VS2005 schon rummeckern - wie es das bei Threadübergriffen bei GUIs tut. Richtig sicher ist m.E. beides nicht.

Aber sehe ich das richtig, dass du nur eine Property ändern willst? Da gäbe es doch eh kein invoke required..

Gruß Holzbrett

07.10.2007 - 18:59 Uhr

Ich steig nicht hinter. Mein Problem mit <List> ist .Net 1.1 😉 ..

über context instance komme ich wie gesagt nur an die instanz meines buttons. Was mir aber auch nix bringt, weil ich dem ja auch nix übergeben kann..

Gruß Holzbrett

[EDIT] Sagt mal, kann es sein, dass ich dem Button das nur als Property übergeben kann? Dann wäre ich nämlich am Ziel meiner Träume! Denn das geht! Jetzt check ich auch das Casten mit Context.Instance. Wenn man den GrundTyp d.h. den Button damit castet, kommt man schon zur Entwicklungszeit an die Properties, die eigentlich erst zur Laufzeit da sind, da sie ja nicht static sind. Ist es das was ihr meintet? [DANKE EDIT]

07.10.2007 - 01:04 Uhr

Schau Dir mal an, was in context.Instance drin ist Da steht drin, dass es der Button ist. Aber das bringt mich ja auch nicht weiter 🙂. Was interessant ist, ist dass dort aber auch der Instanzname des Buttons steht. Aber ich kann ja dennoch nix damit anfangen.

Übergeben kann ich ja immernoch nix, da dieser TypConverter nix zum übergeben hat. Alles doof. Ich glaube ich versuche hier gegen Naturgesetze vorzugehen.

Man kann ja auch eigentlich nix eigenes in der InitializeComponent Methode hinzufügen, was eine Übergabe zur Entwicklungszeit möglich macht. Oder?

Und wenn ich das so betrachte, gibts wohl nur die Möglichkeit, die GetStandardValues zu überschreiben und darin einfach ne Instanz von der DataTable-Ableitung zu erstellen sowie nen nen foreach, was alle tabellenspalten ausliest, in eine ArrayList schreibt und die, da sie ja ICollection konform ist, als parameter in einer neuen Instanz einer StandardValuesCollection zurückzugeben.

Das ganze funktioniert bei mir aber nicht, da ich keine Spaltendefinition in meiner allgemeinen Klassenbibliothek haben will - wo auch der Button drin ist und somit zwangsweise auch der TypeConverter.

Bin natürlich immernoch für Tipps offen; auch wenn ich drauf und dran bin, mich einweisen zu lassen, da eine so große Menge negativen empirischen Wissens in so kurzer Zeit nicht gerade aufbauend ist.

05.10.2007 - 20:57 Uhr

Ich checks nicht 😉 .. Sorry..

Vielleicht check ichs auch nicht, weil es für mich halt immernoch so aussieht, als wenn man den Typ direkt in den override methoden des TypeConverters festsetzt. Was natürlich dazu führt, dass ich wieder am anfang bin, da ich ja immernoch keine Möglichkeit habe, dem ein bestimmtes Objekt zu übergeben.

Es wäre toll wenn diese TypeConverter sache ein DataTable objekt aufnehmen könnte, dass ich ihm übergebe - ähnlich eines Konstruktors halt.

Danke für die Hilfe!

05.10.2007 - 15:21 Uhr

Ich habe gerade eine Entdeckung gemacht, die mich schon vor 2 Tagen von all dem abgehalten hat: Der Designer verwendet den Standardkonstruktor. Man kann so einem Button also gar nix übergeben, was man zu Entwicklungszeit gebrauchen will.

Mit dem TypeConverter scheint's das gleiche zu sein. Der will auch keinen anderen als seinen Standardkonstruktor.

Auch über statische Felder lässt sich nix machen 😦...

Schade eigentlich.

05.10.2007 - 13:45 Uhr

Aber wie soll ich dann dem TypeConverter werte übergeben?

05.10.2007 - 11:56 Uhr

Das klingt gut! ... Kann ich dem Converter denn einen Typ übergeben?

05.10.2007 - 11:49 Uhr

TypeConverter.GetStandardValues wäre Deine Lösung ... Aber da muss ich ja leider die Namen festlegen. Ich bräuchte aber die ColumnNames aus einer DataTable. Müsste dem also schon zur entwicklungszeit ein gültiges Objekt übergeben. Das geht nicht, oder?

05.10.2007 - 09:24 Uhr

es sei denn, du verwendest Generics und übergibst den konkreten Enum als Typparameter.

Das klingt super. Kannst du das etwas erklären?

05.10.2007 - 09:09 Uhr

Aber das enum ist ja von A und C abhängig. B sollte eigentlich nur draufzugreifen.

Klar könnte man das lösen, in dem man sagt, das enum dort muss immer ein enum vom Typ MeinEnum sein. Was eigentlich sogar denkbar wäre, doch müsste die button klasse ja dann zugriff auf das Enum bei A und C haben. Allerdings geht ja der Verweis von B auf A und C.

Wenn ich das enum im Projekt (klassenbibliothek) von B definiere, müsste man ja immer das komplette projekt des buttons einbinden um dann das enum von B zu verändern. Wäre halt schön wenn man dem sagen könnte "hey, dein enum ist jetzt vom typ meines enums".

05.10.2007 - 08:56 Uhr

Hmm, mir ist das dennoch nicht einleuchtend also ich versuchs mal zu erklären:

Ich hab ein enum (nicht Enum - da ist irgendwie ein lustiger Unterschied). Das enum ist jetzt mal das hier:


public enum MeinEnum
{
test,
hallo
}

Das Enum ist einer Klasse A bekannt.

Nun hab ich einen Button der Klasse B. In dessen Code gibt es eine Property die dann so aussähe


private MeinEnum _enumliste;
public MeinEnum EnumListe
      {
         get{return _enumliste;}
         set {_enumliste = value;}
      }

Soweit wäre alles Wunderbar. Doch was ist nun, wenn aufeinmal der Button in einer Klasse C verwendet wird, die ein anderes Enum hat - z.B. ein


public enum MeinEnum2
{
huhu,
ichbins
}

.. ? Dann weiß der Button ja nicht, welches enum er braucht. Oder noch viel schlimmer: sein enum ist ja dann gar nicht da.

Verstehst Du jetzt?

Danke für Deine Hilfe und viele grüße vom Fast-Berliner aus München nach Berlin!

05.10.2007 - 08:38 Uhr

Okay, name ist falsch gewählt. Typ ist richtig.

Mein Problem ist halt, dass es direkt in ner ableitung von Button benötigt wird. Der Button kann aber, da er in ner klassenbibliothek steckt, faktisch überall angewandt werden. In jedem denkbaren projekt. Schön wäre also, wenn man dem irgendwie beibringen könnte, welches enum er in seiner propertie benutzen soll, ohne den code des buttons berühren zu müssen.

Langsam glaub ich, das ist Utopie.

05.10.2007 - 08:15 Uhr

Jaja, aber dann muss das enum ja genau diesen namen haben. Ich fänds toll wenn ich einfach nen Type davon übergeben könnte, der ja - zumindest als string - den richtigen Namen mit Namespace parat hat. Wenn man damit was anfangen könnte wär ja schon alles gelöst.

Naja mein Gedanke bei dem letzten war halt, irgendein object zu übergeben (also jetzt nen ganz anderes thema als das enum) und dass dann á la reflectection so auszustöbern, dass alle darin enthaltetenen properties in eine datenbank eingetragen werden können. Und dazu muss ja der typ bekannt sein.

@Programmierhans: Das klingt wirklich gut, das werd ich mal probieren!

Danke für die Mühe!

05.10.2007 - 07:50 Uhr

Ja, stimmt wohl.. Aber auch wenn das enum sichtbar sein würde, würde die andere Klasse darauf nicht zugreifen können wenn es seinen Typ nicht kennt. Und denn kann man offensichtlich nicht übergeben.

Ich hab mich da wohl etwas verdacht, was das enum betrifft. Aber ich denke jetzt bin ich klüger.

PS: Kann man denn eigentlich ein Object zu sich selbst casten? Also z.B.


class a{ public a(object test){ /* hier sollte test irgendwie zu b werden */ } }
class b{ public b(){} }
class c{ public c(){ b objb = new b(); a obja = new a(objb); }}

Danke!

04.10.2007 - 16:26 Uhr

Ja, dein letzter Satz stimmt... Aber das wäre zu aufwändig.

Das blöde mit dem enum ist ja, dass wenn eine Klasse ein enum enthält und man die klasse instanziiert, also so, dass man sie übergeben kann, ist das enum da nicht mit drin. Wenn man das umgehen könnte, also dass man mit der instanzvariablen - was ja eigentlich eh nur nen verweis ist, oder? - das enum mitgeben könnte, wär alles im Lot.. Aber naja.

04.10.2007 - 16:14 Uhr

Aber welchen DatenTyp etc. hab ich denn noch zur verfügung, der sich so leicht und übersichtlich im Designer wählen lässt?

Ein string Array ist halt so unordentlich. Mir würde es ja auch reichen, wenn ich die Spalten meiner datatable einfach via dropdown wählen könnt.. Geht das?

Vielen Dank!

04.10.2007 - 13:43 Uhr

Ich merk schon, dass ich mit so nem feinen enum wohl nicht weiterkomm.

Die sache war die, dass ich bislang einige Daten im Enum abgelegt habe, da das statische DB-Felder sind. Die wollte ich dann über nen abgeleiteten allgemeinen Button direkt im Property Grid wählen. Ist natürlich noch etwas komplexer, weil das enum zu anderen Zwecken noch gebraucht wird. Aber so wie's aussieht werd ich wohl auf irgendeine Liste umsteigen müssen.

04.10.2007 - 12:46 Uhr

Hallo,

meine jetztige Frage wird wohl einiges Sprengen, aber ich frag einfach mal:

Ich hätte da eine Klasse, die über ein enum verfügt. Nun will ich dieses enum aber einer anderen Klasse, die ich instanziiere, voll zugänglich machen - und das ohne dass diese Klasse den Typ des Enums kennt.

Also mal ein Beispiel:

public class Class1
	{
      public Class1(){}
	   
      enum testenum {hallo, test}
   }


   public class Class2
   {
      public Class2() //Hier sollte das enum rein
      {
         // und hier vllt. auf ein internes Enum verweisen.
      }
   }

Ich weiß nicht, ob ihr versteht was ich meine. Ich hab schon versucht eine Instanz des enums als Enum zu übergeben. In der zweiten Klasse kann ich das ja auch annehmen, aber nix mit anfangen. Ich weiß zwar über GetType dass es vom Typ "testenum" ist, aber damit kann man ja leider nix anfangen. Oder geht da was über Reflections?

Das Gleiche könnte man auch mit nem Object machen. Es muss doch also möglich sein, mit dem bei getType herausgefundenen Type das object sozusagen selbst zu casten, oder?

DANKE!

04.10.2007 - 12:34 Uhr

DAAAANKKKEEE! 🙂

03.10.2007 - 20:17 Uhr

Hallo,

ich hätte da mal eine Frage. Fangen wir mal ganz unten an: Ich brauche einen Button, der sozusagen ein zweites Tag-Field hat. Also was mach ich natürlich? Genau! Einen Button selbst erstellen, welcher einfach von "Button" erbt. Den dann einfach um eine public object property erweitert, get und set rein, fertig. Blöd nur, dass im Designergrid dann diese Option ausgegraut ist; wahrscheinlich weil's vom Typ object ist. Nun frage ich mich aber: Wie hat das MS geschafft? Das Tag ist ja lt. Doku auch vom Typ object.

Weiß von euch vllt. jemand wie man das lösen kann?

23.08.2007 - 08:42 Uhr

Bei Codeproject kannst Du dir einfach mal ein paar Samples anschauen. Ist eigentlich wahnsinnig leicht zu verstehen. In meinem ersten C# Buch (Programmieren lernen in Visual C#) war's auch beschrieben.

Hier mal der CP-Link: http://www.codeproject.com/cs/miscctrl/

Gruß
Holzbrett

21.08.2007 - 10:41 Uhr

Hallo,

leider fiel mir keine richtig genaue Überschrift ein. Aber mal zu meinem Problem...

Ich habe da ein DataSet (XML) und ein DataGrid.

Ich durchforste das DataSet nach eventuellen Fehlern. Wird einer gefunden, so soll auch die Zeile im Grid markiert werden. Nun habe ich aber das Problem, dass ich zwar die Position im DataSet kenne, jedoch nicht die entsprechende im Grid, um diese dann auszuwählen.

Ich hab schon alles versucht was mir so am Morgen einfiel. Jedoch zwecklos. Denn da das Grid ja sortiert wird, ist z.B. das was im DataSet auf Position 34 ist im Grid auf 38 usw..

Wüsstet ihr ne Möglichkeit, wie ich ganz einfach die Position einer Zeile im Grid anhand der Row im DS feststellen kann?

DANKE!!!

28.06.2007 - 09:22 Uhr

Hallo,

leider fiel es mir schwer einen aussagekräftigen Titel zu finden.

Nun, ich benutze dieses Excel: DataTable mittels OLEDB in Excel-Dokument exportieren Snippet. Es ist eigentlich recht gut.

Ein Problem habe ich allerdings. Kein schwerwiegendes aber halt nen B-Fehler. Nun darf sich der User bei mir schon die Datei aussuchen und via File.Exists wird er gefragt ob er die Datei überschreiben möchte. Das alles geschieht vor dem Sammeln der Daten. Nun kommt aber dennoch (Excel weiß ja nicht das der User schon JA zum overwrite gesagt hat) die Abfrage von Excel ob die Datei überschrieben werden soll. Und genau das möchte ich unterdrücken. Denn schließlich kommt das Programm ja erst gar nicht dahin, wenn der User das Überschreiben nicht wünscht.

Ich habe mir schon überlegt, dass man vllt. hier weitere Parameter hat. Allerdings find ich nirgendwo eine Liste dieser..

book.GetType().InvokeMember("SaveAs", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, book, new object[1] { fileName });

Vielen Dank
Gruß Andreas

22.03.2007 - 10:12 Uhr

@ talla: Stimmt... Ich erinnere mich sowas mal in nem Tut gelesen zu haben. Danke!

Joa, dann würd ich doch mal sagen, stellen wir herbivore bei der e-bucht ein 😁

22.03.2007 - 09:06 Uhr

Boa, herbivore, ich glaub ich kauf Dich! 😁

Also mit'm String hat die Auswertung von 7600 Dateien in ~300 Ordnern auf dem aktuellen System ungefähr 20 Sekunden gebraucht. Mit'm Object kurioser Weise "nur" ca. 18Sek. ABER: Mit Deiner Lösung ist das ganze auf unglaubliche (nichtmal) 2Sekunden geschrumpft.

Da rechne sich mal einer aus um wieviel Prozent das ganze jetzt schneller ist 😁

*jippie*... DANKE herbivore!

22.03.2007 - 08:53 Uhr

Soso... Na mal sehen ob mir herbivores Tipps mal wieder freude bereiten. Ich probiers mal eben..

Danke!

22.03.2007 - 08:35 Uhr

Hallo!

Ich habe da mal ein Problem.

Ein kleines Programm zur Dateianalyse packt mir u.U. sehr viele Sachen (Dateiinfos etc.) in einen String. Nun wird das ganze Teil aber mit zunehmender Stringgröße immer langsamer. Wirklich gut ist das ja nicht und aus programmtechnischer Sicht ja auch eine Katastrophe.

Ich dachte mir, dass vllt. der String seine, vom Framework zugeteilte, Größe überschreitet und somit dieses immer öfter den Speicher vergrößern muss. So könnte ich mir das nur vorstellen; wird doch ein String nicht mit einer Größe angegeben und es liegt somit im Ermessen des Frameworks wie groß ein String ist. Denn er kann ja nicht zu beginn der Laufzeit unendlich groß sein.

D'rum wollte ich mal wissen ob es eine Möglichkeit gibt, dem String bereits zur Entwicklungszeit Speicher zuzuordnen? Oder gibt es vllt. einen andere Variablentyp der noch größer zugewiesen wird?

Danke!

16.03.2007 - 17:31 Uhr

Hallo,

da sich meine gedankengänge inzwischen im kreis drehen, frage ich mal euch.

also die sache ist die: ich habe mehrere rekursive methoden (je nachdem was ich will) zur dateianalyse. nun habe ich das alles in einer klasse (form). mir ist die anzahl der dateien bekannt sodass ich innerhalb der rekursion ein progressbar verwalten kann. soweit kein problem..

nun will ich aber die methoden statisch in eine andere klasse packen. (ordnungshalber).. nun was mach ich natürlich? genau, ich instanziere das form (welches eigentlich die methode aufruft) und weise dem progressbar einfach die werte zu.

aber pustekuchen! an der progressbar ändert sich gar nix.

hab schon einiges versucht, aber es klappt nicht.

jetzt dachte ich vielleicht, dass die instanz des forms nicht auf die die selbe progressbar zugreift wie die der ersten instanz durch main. ist doch eigentlich nicht möglich oder?

oder geht das vielleicht zu schnell in der rekursion? also dass die value zuweisung gar nicht funktioniert? bzw. die progressbar sich nicht schnell genug aktualisiert?

wäre es vielleicht möglich in der klasse (kein form) eine progressbar zu definieren und diese dann an das form(also methodenaufrufende klasse) zu binden?

ich glaub ich mach da grad nen grundsatzfehler 🙂

vielen vielen dank!

04.10.2006 - 10:49 Uhr

Nutze die View INFORMATION_SCHEMA.COLUMNS.

Ah ja.. und wie? ^^ .. Steh grad komplett aufm schlauch

DANKE!!!