Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von TiTime
Thema: leere Tablle erstellen mit selben strukture einer anderen
Am im Forum: Datentechnologien

Hi, danke für die Vorschläge

Aber das Problem ist diese statement funktionieren zwar aber ich muss dann wie schon beim Beitrag geschrieben im Insert den Haufen an Feldern angeben, und eine Identity_Insert auf On stellen. Das ist somit nur eine verlagerung meines Problems an eine andere Stelle.

Ich hätte eher was gesucht eine leere Tabelle zu erstellen die dieselbe Datenstruktur hat und man neue Datensätze ohne Probleme inserten kann.

Thema: leere Tablle erstellen mit selben strukture einer anderen
Am im Forum: Datentechnologien

Hi Leute,

Ich verwende SQL Server 2005 und hab ein Problem beim erstellen einer Procedure.
In dieser Procedure ist es notwendig aus einer bestehenden Tabelle zufällig n Elemente auszuwählen und in einer neuen Tabelle zu duplizieren.

Folgenden Code der funktionieren würde kann ich nicht verwenden weil er nicht performant ist, da n sehr groß ist (mit groß meine ich HunderteTausend bzw. Millionen) :


SELECT Top(n) * INTO destinationTable FROM sourceTable ORDER BY NEWID()

Daher habe ich mir überlegt ich könnte doch n mal
SELECT @RandomInteger = ((@MaxValue + 1) - @MinValue) * RAND() + @MinValue
ausführen und damit selber den primary key berechnen um dann in einer Temp Tabelle hinzufügen. Funktioniert in der Theorie ja auch und ist wesentlich schneller.

INSERT INTO #destinationTable
   SELECT *  FROM sourceTable WITH (NOLOCK) 
   WHERE EM_Mail.MailID = @randomNumber
Dieser Code wird in einer Schleife n mal ausgeführt und @randomNumber wird neu berechnet.

Das Problem was ich habe ist:

Wenn ich ein CREATE TABLE destination TABLE mache müsste ich eine Liste mit Spalten angeben. Das Problem ist, das die SourceTabelle über 40 Spalten hatt und das hinschreiben will ich mir ersparen.

Wenn kein CREATE TABLE mache sondern z.B.: folgendes.
 SELCET TOP(0) * INTO destinationTABLE FROM sourceTable 
habe ich zwar eine Tabelle mit richtiger Struktur, aber das insert funktioniert nicht, weil
Zitat
An explicit value for the identity column in table '#tmp_RandomSelect' can only be specified when a column list is used and IDENTITY_INSERT is ON
Führt wieder dazu das das insert die List mit 40 Spalten benötigt.

Nun suche ich nach einer Lösung wo ich sowas wie CREATE TABLE destinationTable LIKE sourceTable , dann würde das INSERT auch funktionieren. Oder es weiß jemand eine andere Lösung wie ich einen Tabelle erstellen kann die nur ein Auszug aus der orgnialen ist und wo die einträge zufällig sind.

Danke im Vorraus!

Thema: DatumsString in Timestamp umwandeln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für die Antworten.

@ svenson

Zitat
Hab mal deine 2. Version bei mir durchlaufen lassen:

100.000 Strings werden in 2,7 Sekunden geparst. Compiliert in 0,5 Sekunden

Ich komme auf ein halbe Minute, weil die Regex auf ein über 100MB File arbeitet. Wären es nur solche Datumsformate wäre ich viel schneller. Daraus folgere ich, dass es doch die Regex prozedur ist die mich enorme Zeit kostet. Denn wie es scheint kann ich am Umwandeln etc nicht mehr viel tunen (siehe unten).

Daher werde ich mal gucken wieviel ich mit einer vorkompilierten Regex rausholen kann.

@BhaaL
Die Split Methode die du vorschlägst habe ich bisher noch nicht ausprobiert (Werde ich trotzdem mal durchprobieren) kostet im Normalfall viel Performance.

@svenson und BhaaL
Ich habe das "händische Parsen" ausprobiert in einer ganz absurden Art. Hat leider keine Verbesserung gebracht. Eigentlich sogar langsamer als int.Parse selbst. ???


Regex timePattern = new Regex(@"\[(?<time>\d+:\d+:\d+,\d+)\].+?[\f\n\r\t\v]+?Received a message", RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = timePattern.Match(message);
while(m.Success)
{		
    string timeString = m.Groups["time"].Value;
   long x = 
	((int)timeString[0] -48)	* 36000000 
	+ ((int)timeString[1] -48)	* 3600000
	+ ((int)timeString[3] -48)	* 600000 
      + ((int)timeString[4] -48)	* 60000
	+ ((int)timeString[6] -48)	* 10000 
	+ ((int)timeString[7] -48)	* 1000
	+ ((int)timeString[9] -48)	* 100 
	+ ((int)timeString[10] -48) * 10 
	+ ((int)timeString[11] -48);
 ...
times.Add(((long)ts.TotalSeconds)*1000+ x;
}

oder auch


int hh = ((int)timeString[0] -48)* 10 + ((int)timeString[1] -48);
int mm = ((int)timeString[3] -48)* 10 + ((int)timeString[4] -48);
int ss = ((int)timeString[6] -48)* 10 + ((int)timeString[7] -48);
int ms = ((int)timeString[9] -48)* 100 + ((int)timeString[10] -48) * 10 + ((int)timeString[11] -48);
DateTime dt = new DateTime(now.Year, now.Month, now.Day, hh, mm, ss, ms)

@0815Coder
Ebenfalls das ersetzen von , durch einen Punkt kostet zuviel Performance. Im Normalfall ist ein String.Replace einer der aufwendisten Mehtoden des Strings. Und ich kann leider nur mit einem Vorscript alles ersetzen, bevor ich die Aplication starte. Werde ich mir durch den Kopf gehen lassen?
TimeStamp.Parse() ? kenne ich nicht und finde ich leider nicht.

Trotzdem danke mal für die Vorschläge.

Thema: DatumsString in Timestamp umwandeln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi leute!
Also ich habe ein file mit folgenden Strings nach diesem Muster

"13:07:18,692"


Den will ich in einen Unix TimeStamp umwandeln. So nun gibt es verschiedene Möglichkeiten die mir einfallen die alle vielzu langsam sind, weil ich eine große Anzahl solcher Strings umwandeln muss. So dauern etwa 5000 solche Strings etwa eine halbe Minute. Das ist jedoch nur ein File und ich habe hunderte von Files zu bewältigen. Datum sollte immer das heutige sein.

Ausprobiert habe ich
1.


Regex timePattern = new Regex(@"(?<time>\d+:\d+:\d+),(?<ms>\d+));
Match m = timePattern.Match(message);
while(m.Success)
{
    string timeString = m.Groups["time"].Value + "." + m.Groups["ms"].Value;
    DateTime dt = DateTime.Parse(DateTime.Now.ToString("dd.MM.yyyy")+ " "+ timeString);
    TimeSpan ts = (dt.ToUniversalTime() - new DateTime(1970, 1, 1));
    times.Add(((long)ts.TotalSeconds)*1000+dt.Millisecond);
    m = m.NextMatch();
}


2.


Regex timePattern = new Regex(@"(?<hh>\d+):(?<mm>\d+):(?<ss>\d+),(?<ms>\d+)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = timePattern.Match(message);
while(m.Success)
{
   DateTime now = DateTime.Now;				
   int hh = int.Parse(m.Groups["hh"].Value);
	int mm = int.Parse(m.Groups["mm"].Value);
	int ss = int.Parse(m.Groups["ss"].Value);
	int ms = int.Parse(m.Groups["ms"].Value);

	DateTime dt = new DateTime(now.Year, now.Month, now.Day, hh, mm, ss, ms);
	TimeSpan ts = (dt.ToUniversalTime() - new DateTime(1970, 1, 1));
	times.Add(((long)ts.TotalSeconds)*1000+dt.Millisecond);

	m = m.NextMatch();
}

Resolution: DateTime.Parse() ist langsasm und int.Parse() ist zu langsam.
Also suche ich nach einer schnelleren Mehtode um aus den oben genannten String einen UNIX timestamp zu generieren. Entweder gibt es eine schnellere Methode einen String in einen int zu konvertieren oder eine andere orginelle Idee.

Übrigens will ich keinen unsafe code haben.

falls jemand fragt warum regex -> spielt keinen unterschied wie ich das file einlese, das ist nicht der Performance bremser.

Thx für Antworten.

Thema: On-the-fly Regex-Tester: Regex-Lab
Am im Forum: Projekte

ein spitze Tool, dass kann man einfach nur weiter empfehlen. Auch wenn du es schon 1000 mal gehört hast. Dankeschön!

Thema: Regex mit not funktioniert nicht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo! Danke für die Antworten!

:ujr

Ich habe es momentan so gelöst, dass ich umgekehrt überprüfe. War aber nur interessiert warum er mir das not gar nicht abnimmt.



:SeeQuark

Danke übrigens für den hinweis. habe das pattern mit ^$ umschlossen und funktioniert jetzt wunderbar.

new Regex(@"^[^äöüÄÖÜß\s]+$")

übrigens dass Regex Tutorial kenne ich natürlich nur den Tester hab ich mir noch nicht zugefügt, was ich aber definitive mache.

Thx für die Antworten. Cheers!

Thema: Regex mit not funktioniert nicht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen!

Also ich möchte einen String überprüfen, dass alle Zeichen enthalten darf bis auf Umlaute und whitespaces.

string s = "asda8äüö9780dsd78???asd$$%%as";
Regex pattern = new Regex(@"[^äöüÄÖÜß\s]+");
if(pattern.Match(s).Success)
 .... // da will ich hin

Der Regex hatt immer einen match völlig unabhängig ob da ein umlaut drin ist oder nicht?

Ich hab es natürlich auch so probiert:


Regex pattern = new Regex(@"[^ä^ö^ü^Ä^Ö^Ü^ß^\s]+");

Aus irgendeinem Grund funktioniert mein Not nicht, egal was ich mache.
Woran kann das liegen?

thx

Thema: Wie ist mein Code?
Am im Forum: Rund um die Programmierung

hmm meine meinung zu punkto programmierstiel.
Der Code im Main sollte übersichtlicher gestalltet sein.
klar du verwendest Region aber region ist nicht wirklich zum unterteilen einer Methode gedacht. Main ist ja im Prinzip auch nur eine Methode.
Wie Lagere Teile aus in andere Methoden.
zB.: die region Ausgabe/ Einführung könntest ruhig in eine andere Methode hauen.
da du eine Methode von Main aufrufst, vergiss nicht die neue methode ebenfalls als static zu deklarieren.

Ansonst gefällt mir der Code recht gut. Bis auf den punkt, dass ich für ne neue Klasse ein eigenes File verwenden würde.
Hat Semantisch mehr Sinn. Numbers ist sematisch keine unterklasse von Programm. Daher meine Empfehlung neue Klasse neues File. Class In-Class definitionen würde ich außer bei paar ausnahmen unterlassen.

Meistens gibt es ein paar Kleinigkeiten an der man eine gute programmier ausbildung erkennt aber ob du jetzt etwas so oder so schreibts ist meist Geschmakssache.

Ach übrigens bevor ich eines vergesse. Man sieht es zwar oft, schaut professionell aus ist es aber nicht. Ich mein ich tendiere hin und wieder auch oft zu dieser Schreibweise aber sie ist nicht empfehlenswert wenn es um die lesbarkeit des Codes geht. Ich meine die endlosen MEthoden in Methoden aufrufe.

Bsp: Console.WriteLine(Convert.ToDouble32(blabal.balabla))

Ich mein das mit Convert is noch ok. aber über 2 -3 solche konstruktionen sollte es nicht hinausgehen. Das problem besteht dahin, wenn du eine Software schreibst die jemand andere wartet bzw. wenn du sie nach Jahren den Code erst wieder zu gesicht bekommst, ist es äußerst mühsam sich da wieder hineindenken zu müssen.
im "geschäftlichen" Einsatz solltest du daher soetwas auch eher meiden.

mfg TiTime

Thema: Daten mit ADO.NET2 aus einer Datenbank lesen
Am im Forum: Datentechnologien

Zitat
Das einzige ist, dass man bei "group by" besser mit "having" statt "where" arbeitet.

Das würde ich nicht. Die Where Stimmt auf jedenfall. da "kürzt" du mal alles weg von der tabelle was nicht brauchbar / relevant ist. mit having gehst du nur in die einzelnen gruppierungen und selektierst noch was du nich bracuhst.

Bsp:mit deinem Statement
Table: day x y
23 c s
24 n m
24 a g
25 b h

Sql Fängt ja mit der From table Where Klausel an: tabelle Hourly Weather dann alles weg wo day < @actualDay.
dann bleibt dir mal wenn actualDay = 23:
24 n m
24 a g
25 b h

group by day:

24 n m
a g
25 b h

und having würde dann auf einzelnen grupperiungen gehen.


DeFakto Fehler muss woanders liegen. Um sicher zu gehen für das select statement direkt auf der Db aus. Sollten da Fehler sein schreit er eh. bester test.
Zitat
Diese Anfrage ist unter MS VisualStudio Express eingegeben und mit einer Fill und Get Methode ausgestattet.

was meinst du damit?

Thema: Config Datei umbenennen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
In VS muss die Datei immer app.config heissen.

Das is ja interessant dass die config immer app.config heißen muss!

Ich frag mich wie ich das dann wohl in x projekten so machen konnte das sie nicht app.config hieß. Das muss dann wohl magic gewesen sein.

Thema: exe-Datei geht auf anderen Computer nicht?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wieso so kompliziert?
Kopier die Dll einfach mit der Exe mit.
Außerdem kannst dann im Programm überprüfen ob die dlls vorhanden sind oder nicht.
Einen Installer kannst eh machen, der dann die dlls mit imporitert.
Aber das hat nicht so viel mit c# zu tun sondern eher mit Visual studio. Keine Ahnung ob die express version sowas inkludiert hat.

Thema: Config Datei umbenennen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

DU kannst ne Config datei bennen wie du willst.
Das einzige ist du musst dann halt die Datei dem Projekt zuweisen.

wo ist das Problem?

Thema: Formular mittels Activator.CreateInstance(...) erstellen - aber bitte nur ein Exemplar?!
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

ANdere Lösung. Bei den Klassen wo nur ein Object existieren soll das Singleton Pattern(siehe Design Pattern) anwenden. Dann kann es nur ein Objekt geben.
Falls du den Zugriff von mehreren Objekten unterbinden willst kannst dann noch eine Quasi Anmeldeliste im SingletonObject einbauen. Wo du entweder dann nach der Reihe die Zugriffe abarbeitest. oder sogar nur einenn einzigen Zugriff erlaubst.


greetz TiTime

Thema: DataGrid Drucken!
Am im Forum: Datentechnologien

Hi danke für den link. hab ich mir angeschaut.
Aber ich finde da keinen Source code. man kann zwar ein bsp runterladen, aber der source code ist nicht einsehbar. man kann sich nur anschauen weis ausschaut.
Hat mir leider nicht wirklich geholfen. von dem abgesehen war mir die seite bereits bekannt. Danke trotzdem!
Weiß sonst noch jemand was für mich???

Thema: Formatierte DataGrids?
Am im Forum: GUI: Windows-Forms

Hallo Zusammen!
Hab im Forum das thema nicht gefunden, und google hilft auch nicht weit. Aber ich bin mir sicher das ich nicht der Erste bin der sowas braucht/ gebraucht hat

Gibt es eine Möglichkeit die DatagridsZellen formatiert auszugeben? Damit meine ich nicht vorher mit Strings "hantieren". Oder gibt es sowas gar nicht? ?(

Genauer beschrieben will ich z.B.: das in einer Spalte die doublewerte nur mit 2 nachkommastellen und mit einem Währungszeichen angezeigt werden und bei einem anderem kommt zB. Stk zeichen hinzu.

Ich frage weil wenn ich mit Strings hantiere könnte ich unter umständen nicht mehr die richtigen Daten auslesen und müsste "rückhantieren".
Hingegen wenn es so eine Formatierungseinstellung gibt, dann gilt das ja nur für die anzeige und im hintergrund bleibt das objekt einer Zelle z.B.: ein double, integer etc.

Thema: DataGrid Drucken!
Am im Forum: Datentechnologien

Jaja immer die alte Leier! Ich weiß! Aber ich finde x Artikel zu dem thema aber keiner beantwortet meine Frage befriedigend, bzw. ausreichend.

Es gibt diverse Alternativen für den Ausdruck. Natürlich reicht die momentane Ansicht des Grids nicht, sonder alle dahinter liegende Daten müssen gedruckt werden. Da ja immer wieder gesagt wird Crystal Report ist am einfachsten bla bla bla. Soweit so gut:

1. Man braucht da ein DataSet typisiert oder untypisiert, was das auch immer heißt!?
Crystal Report will aber schon beim erstellen etwas. tja, was soll ich da angeben?
Mein Problem ich hab kein Dataset. Lediglich DataTables die zur Laufzeit erstellt werden. Das DataGrid verwendet diese DataTables als DataSource.

2. Beim Crystal Report müssen schon zur Entwurfszeit die Anzal der Spalten bekannt sein. Hmm Problem verschiedene DataTables müssen angezeigt werden. Muss ich da jetzt n- verschiedene Reports dafür erstellen? Für jede Ansicht/DataTable eine neue erstellen? Dann hätt ich ja über 20 verschiedene Ansichten.

3. Wenn Crystal Reports für so was nicht geeignet, was empfelt ihr mir.
Würde meine Anforderung mit dem normalen Reporting Service gehen?
Für andere Lösung bitte ienne link oder Stichwort dazu.

Ich hab natürlich schon bei CodeProject die ganzen möglichkeiten angeschaut. Aber das ist halt schon sehr viel Code und recht viel Zeit hab ich nicht mehr.

Hinweis: Die DataTable existieren natürlich nicht solange die Anwendung lebt. Da die Anwendungen rund 15 verschiedene WindowForms verwendet und auf jeder Form andere Daten und auch teilweise unterschiedlich dagestellt werden sollten werden die DataTables nach dem Schließen der Form wieder eleminiert. -> WindowsFormsObjekt Members.

Also was tun? Danke für die Antworten.

Thema: SQL insert
Am im Forum: Datentechnologien

Danke für die Antworten!

Das War eh nur die Exception auswertung. Und ich hab halt beim debuggen die Werte den versuchen nach geändert um weiterzukommen. Ging aber nicht.

hmm SqlCommand mit Parametrisierung bei typangabe ich kanns mal probieren auf diesem Wege probieren, aber das ist so eine sache. Weil ich die Datenbank über eine selbst geschrieben klasse anspreche. und die Methoden nehmen meist SQL strings.
Grund für diese Wahl ist weil die Select meist etwas komplexer sind und kein DataAdapter und kein Dataset dafür existiert bzw. existieren kann.
Ich weiß das gerade für ein komplexeres Select die Parametrisierung sich eignet aber nicht wenn sich dadurch die Where Bedingung ändert, soll heißen mehr oder auch weniger Bedingungen erfüllen muss.
Aber danke für den vroschlag, Ich werd es mir durch den kopf gehen lassen.

Gibt es sonst andere Alternativen??

Thema: SQL insert
Am im Forum: Datentechnologien

Hallo
Entweder ich stehe voll auf der Leitung ode rich weiß nicht warum, aber
wie schaut ein INSERT - Statement aus wo ich dezimalwerte einspiele.

User trägt dezimalwert in ein Datagridview ein und ich nehm diesen wert um sie in einer Spalte einer Tabelle zu speichern

Natürlich bekomm ich Exceptions wenn das Statement folgendermaßen aussieht:

INSERT INTO blabla VALUES(wert1, wert2, wert3, wert4) 
// wert 3 und wert4 sind jetzt Dezimalzahlen, also z.B. 4,35 
Eception fliegt weil da dann steht zuviele Values
INSERT INTO blabla VALUES(id1, name1,  4,35  ,   3,65)  
So nun hab ich schon folgende Sachen probiert:
INSERT INTO blabla VALUES(id1, name1,  4.35  ,   3.65) 
INSERT INTO blabla VALUES(id1, name1,  (4,35)  ,   (3,65)) 
INSERT INTO blabla VALUES(id1, name1,  '4,35'  ,   '3,65')
INSERT INTO blabla VALUES(id1, name1,  '4.35'  ,   '3.65')  
Funktioniert alles nicht!

Meines wissen nach müsste die Erste probevariante stimmen. Also entweder stehe ich auf der leitung oder keine ahnung.
Und wenn das erste Stimmt wie wandle ich das dann so um mit stringcasten und replace von , mit .?

Bitte um Hilfe!

Thema: Wofür benutzt Ihr Partial Types ?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

"Überischtlichkeit" wäre meine Antwort!

Wenn eine Klase halt so groß ist das man durch das Teilen eine bessere Übersicht bekommt sollte mann sowas schon mal teilen

Eine Code mit über 500 lines bei platzsparend schreibend ist schon etwas umfangreich und da etwas zu finden ist nicht so easy, da bietet sich halt dieser Komfort an.

Nach welchen Kritereien jeder einzelne das dann teilt bleibt jedem selbst überlassen.
Wenn bei mir so eine große Klasse entsteht teile ich sie meist in eine File für die Members + Properties + getters & Setter + Ctor and Inits und die andere für die ganzen Methoden und wenn es ganz schlimm ist teil ich die MEthoden noch in public und private teile.

Thema: Programm zur Pizzabestellung
Am im Forum: Rund um die Programmierung

Zitat
Schau Dir mal dieses Buch an
Ich hab dieses Buch in meiner Buchsammlung. Und es ist meiner Meinung nach das beste der Design Pattern Bücher. Und ich hab einige gelesen Angefangen über Die GOF Bible bis diverese kleinBücher sowohl in english als auch in Deutsch.

Sehr wohl weiß ich daher dass dort Pizza bestellungen als Factory Pattern dargestellt wird. Allerdings habe ich zum Decorator geraten, weil es scho scheints mir es so wie im Kaffebeispiel abhängig ist wie sich der Preis der Pizza zusammen setzt

Aber vermutlich gebe haben die anderen Recht und du solltest zuerst mal mit den Forms hantieren wenns wirklich so weit fehlt. Sorry falls ich hier ne Diskussion angezettelt habe die doch etwas abseits deines Kernproblems liegt

Thema: Events
Am im Forum: GUI: Windows-Forms

Hi!

Zitat
Problem ist einzig und allein das "posten" von Veränderungen an der DataTable an GUI-Elemente zur Aktualisierung.

respekt ikaros. Ich würde sagen du hast mein Problem und mein Design und die Gründe für diese wahl den Nagel voll auf den kopf getroffen. Besser könnte man es gar nicht mehr formulieren.

Aus Zeit Gründen auch rischtisch. Das Programm muss spätestens Do fertig werden. Dann ist "Abgabe" bzw. ist meine Zeit um.

Also Lösungsideen wären dementsprechend sehr nützlich.
Lg TiTime

Thema: DataSet Updaten / Editieren
Am im Forum: Web-Technologien

wird sicher anders auch gehen aber du könntest ein neues DataSet erstellen und die werte mit der Clone() methode "füllen". dann kannst herumhantieren wie du willst und die Orgnialtabelle bleibt erhalten.

Thema: Programm zur Pizzabestellung
Am im Forum: Rund um die Programmierung

@Lord Hessia
Natürlich weiß ich das, dass man erst mal reinlaufen muss und einiges schon verstehen muss bevor man sich an die Designpatterns heranwagt, aber ich hab dies auch nur vorgeschlagen, weil das Decorator pattern nicht so schwer zu verstehen ist.
Es sollte auch keine persönliche Kritik sein und schon gar nicht ein vorwurf das er es nicht so gemacht hat. Es war nur so ein kleiner tipp in die richtige richtung
Also bitte nicht falsch verstehen das Ganze.

Deswegen hab ich ja gesagt ich weiß nicht wie gut es mit sienen kenntnissen der OO steht. Das sollte ein Impliziter Hinweis sein, dass er erst sich daran wagen soll wenn er die Prinzipen der OO verstanden hat.
What ever.
Auf jedenfall alles gute

Thema: Problem eine Funktion in einer DLL anzusprechen
Am im Forum: Rund um die Programmierung

hmm
ich kann mir ca. vorstellen warum du eine Fehlermeldung bekommst.
string ist in c# kein wirklicher typ. Sondern wird viel mehr als Objekt behandelt.
Das Problem ist das in c* ein Pointer auf eine Speicheradresse eines konstanten literals ist. Ein String ist meines wissen nach in c# kein konstanter literal. Und die speicherstruktur eines objektes und eines konstanten literals ist nun mal anderes und nicht 1:1 umsetzbar. (genauere Begründung geb ich gerne ist aber momentan nicht so relevant)

In C++ ist es möglich einen pointer auf ein c-array zeigen zu lassen. Daher könntest es mal so probieren.


char [] fname = dlgSave.fileName.ToCharArray();

// dann denn aufruf der methode mit fname 
...
int result = API.UF_SaveDB(fname);
...
Es ist nur eine Vermutung das das funktionieren könnte. sicher ist dies allerdings nicht. Sollte dennoch eine exception fliegen, liegt es nur daran, dass man in c# nicht wirklich mit pointern arbeiten kann.

Thema: Programm zur Pizzabestellung
Am im Forum: Rund um die Programmierung

Also ich hab die ganzen Einträge nur überflogen aber ich nachdem ganzen Codestücken was ich gesehen habe, ist es designmäßig eine katastrophe was du machst. Vor allem ist diese sehr unflexibel wenn du mal änderungen etc. nachvollziehen musst. Und eine endlose switch anweisungen ist auch nicht grad das gelbe vom Ei.

Es gibt für viele Problem Design Patterns die Problem "sauber" lösen und auch nicht all die ganzen Probleme hervorrufen die du jetzt momentan hast. Weiters behälst du dir mit leichtigkeit die Übersicht. Ich weiß nicht wie sehr du mit der OO Programmierung wirklich vertaut bist aber ich würde für dein "Pizzabestellungsprogramm" das Dekorierer bzw Decorator Design Pattern empfehlen. Less dich zu diesem Design Pattern ein und du hast das Programm in null komma nix gelöst.

Thema: BackGroundColor in TextBox
Am im Forum: GUI: Windows-Forms

Ich mein die einzige Vermutung die ich noch habe die aus deinem gezeigten Code noch sein könnte, läge bei

textBox1.Font = new Font(font.Name, font.Size + 1, font.Style);

Kann ich mir zwar fast nicht vorstellen, das Font auch festlegt auf welcher hintergrund farbe geschrieben wird aber ich hab die klasse noch nicht genauer betrachtet.

Weiters stellt sich die Frage ob du schon bei der initialisierung eine neue fontzuordnung vornimmst wenn nein und das textbox ist bei der anzeige dennoch grau bin ich ehe ratlos und das obige war stuss. Sonst sehe ich aus deinem gezeigtem Code keine möglichkeit wo die textbox geändert werden könnte.

letzte Idee vs neu starten und project neu aufmachen. Ist aber eher in seltenen fällen die lösung.

Thema: RadioButtonList
Am im Forum: Netzwerktechnologien

mach den Quellcode vom Formdesigner auf und schaue mal unter dem Button nach welches Event dem zugeordnet wird.
vielleicht ist da noch ein relikt von einer alten Zuordnung.

Wenn du sagst die on_click methode wird gar nicht ausgeführt müsste eine falsche
Zuordnung eiern Methode zu einem Event sein.

Also du solltes nach solcher Zeilen ausschau halten :


            // 
            // BtnAdd
            // 
           ....
           
            this.BtnAdd.Click += new System.EventHandler(this.BtnAdd_Click); 

In klammer steht der Methoden Namen der aufgerufen wird, ist dieser rischtisch?
oder hast du sogar mehrfach .Click Events stehen?

Thema: was kann alles in ein object[] gespeichert werden?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo avlbger!

Also ich arbeite einiges mit DataTabels und deine Annahme

Zitat
Kann es sein dass das ganze dort dann einfach als String abgelegt wird
ist falsch. Grundsätzlich wird dort wie meistens alles als objects abgelegt.

Warum du jedoch strings da drin hast lässt mich eher auf die NameValueCollection tippen. Wenn du genau mal die Doku über NameValueCollection gelesen hast repräsentiert die Klasse eine Collection von assozierten String keys und String values. Daher diese mögliche Cast Exception.

Vermutlich begründung ohne Gewähr:
Warum nun queuetable.Rows.ItemArray[1] einen string retourniert ist vermutlich eine Hintergrundzugriff über pointer mit einem impliziten cast hervorgerufen aufgrund der generischen Programmierung. Die Values einer Datatable neigen eher dazu ein String zu sein. Wenn nun ein Typ reinkommt der eignetlich darin weniger darin was veerloren hat wird der Default cast als beste passende bzw. default Klasse herangezogen. (strings) . Also wie es C# genau im Hintergrund macht weiß kaum jemand es ist nur eine vermutung weil ich zeimlich viel in native C++ gelernt habe. und eine Zuweisung eines Pointers auf ein array wäre in C++ gleichzusetzen mit einem Pointer aufs erste Element( und das wäre hier ja vom typ String)

Dein Fehler würd ich sagen ist die Beahhrlichkeit alles so umzugesalten das es in eine DataTable passt. Davon würd ich dir mal abraten, weil ein Element anzulegen wo der erste Wert immer null ist, ist nicht so gut. Ersten wenn du schon ein Object hast würde ich es nie noch zusätzlich in ein object[] pressen wenn du nicht ein Array von verschiedenen Objecten hast.

Wenn du sagst du brauchst sie nur zum speichern würde ich dir keine DataTable empfehlen. vielmehr eigene sich da eher eine Arraylist oder wie schon gesagt Hashtable. Denen kannst du ein object ohne Problem zuordnen.

mfg TiTime

Thema: RadioButtonList
Am im Forum: Netzwerktechnologien

Zitat
Original von bird
wenn ich ein element ausgewählt habe und einen Button drücke wird das OnClick ereignis nicht ausgeführt, sondern die seite erneiut geladen ....
Ich gehe mal davon aus, dass du eh die radiobutton meinst.

Was meinst du mit die Seite wird neu geladen? Hast du schon mal durchdebuggt?
Wenn du ein Event daran gebunden hast. Setzt einen Breakpoint auf die MEthode die aufgeruft werden soll und debugge nochmal alles durch. Wenn er zur Methode hinkommt liegt der Fehler dann wo später, wenn nicht wird nicht das richtige event ausgelöst.

[qoute] wird das OnClick ereignis [/quote]
Ich würd darüber hinaus nicht dieses sondern ein anderes Ereignis verwenden:


radioBtn.CheckedChanged += new System.EventHandler(methode);

lg TiTime

Thema: datenbanken anbindung
Am im Forum: Datentechnologien

Hallo *neo*!

Freut mich das ich dir helfen konnte Und danke für das Lob

Also eine gute Doku über getSchema() hab ich bislang leider auch nicht gefunden!
Wird es sicher wo geben aber alle google hits abzuarbeiten war mir dann doch zu mühsam. Einiges ist in der Msdn zu finden, die allerdings am anfang etwas irreführend ist und man eigenltich nicht das erhält was man braucht.

Wie man auf alles kommt. hmm Du wirst lachen aber ich hab es so gemacht.


Datatable schematab = reader.GetSchema();
// da irgendwas halt wo man dann einen breakpoint draufsetzten kann 
//z.B.: int i = 0;
so bei int i = 0; hab ich dann einen Breakpoint gesetzt. und debuggt. An diesem Punkt angekommen hab ich dann in der Watchlist die schematab aufgeklappt und habs durchgearbeitet wo welche informationen stehen. Und das ist kein Scherz 8o

Da bin ich halt draufgekommen, dass unter columns die ganzen einstellungen zu einer Tabelle stehen(z.b. wie lang ein feld ist, welche nullwerte erlaub etc.) und unter rows hab ich dann die spalten namen gefunden.

Mühsam aber jetzt weiß ich wenigstens was mir getSchema() liefert.
Nach dieser art mach ich es immer wenn ich nicht exakt weiß was mir das jeweilige liefert.

Wie gesagt einen "schnelleren" Weg hab ich leider bislang nicht gefunden.

Schöne Grüße TiTime