Laden...
.
.tim myCSharp.de - Member
Softwareentwickler Mainz Dabei seit 21.12.2006 332 Beiträge
Benutzerbeschreibung

Forenbeiträge von .tim Ingesamt 332 Beiträge

04.02.2008 - 12:35 Uhr

Ok danke, dann ist mein OR Mapper ADO.Net

Vielleicht hat jemand ne Idee zu meinem Problem oder eine Anmerkung zu einer LINQ Umsetzung.

04.02.2008 - 12:26 Uhr

Was genau ist ein ORMapper? Sowas wie LINQ? Habe mir mal LINQ angeschaut. Bei Objekten die von IEnumerable<T> abgeleitet sind, verstehe ich es scheinbar. Aber wie ich einen Mapper auf eine MySQL Datenbank erstelle ist mir unklar.

MySQL mag mich im moment eh nicht.

MySqlCommand com = new MySqlCommand("INSERT INTO cds(cdname) VALUES(@cdname2)");
            com.Connection = con;
            com.Parameters.AddWithValue("@cdname2", "MeinName");

com.ExecuteNonQuery();

Bei dem Execute kommt es zu einer MySQL Exception: "Column 'cdname' cannot be null"

01.02.2008 - 17:10 Uhr

Ok mein Fehler 😉

Er wirft die Exception wenn kein Datum bzw 0000-00-00 gesetzt ist.

01.02.2008 - 17:07 Uhr

Ok, dann sag mir bitte was ich falsch mache.

Ich lade den aktuellen Connector von der folgenden Seite herunter:

http://dev.mysql.com/downloads/connector/net/5.0.html

Binde diesen in mein Projekt ein und führe folgenden Code aus:


using MySql.Data.MySqlClient;
...
MySqlConnection con = new MySqlConnection(
                "Server=localhost;Database=xxx;Uid=xxx;Pwd=xxx;");
            con.Open();
            MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM cds", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            this.dataGridView1.DataSource = dt;
...

Die Tabelle hat folgende Struktur:

CREATE TABLE `cds` (
  `cdid` int(11) NOT NULL auto_increment,
  `cdname` varchar(100) NOT NULL,
  `path` varchar(100) NOT NULL,
  `insertDate` datetime NOT NULL,
  PRIMARY KEY  (`cdid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Wenn ich den Code ausführe bleibt er bei dem Fill stehen und wirft eine MySQLConversionException: "Unable to convert MySQL date/time value to System.DateTime"

Kann mir jemand sagen was ich falsch mache und oder wie ich es beheben kann?

01.02.2008 - 16:30 Uhr

Hallo, ich nutze einen MySQL Server 5.0.51.

2 Provider sind mir bekannt, die einen Zugriff auf MySQL ermöglichen.

Einmal der ByteFX Client. Dieser funktioniert aber scheinbar nur mit MySQL 4 oder früher.

Andererseits der originale Provider. Leider funktioniert dort noch immer keine DATETIME Konvertierung. Gibt es dafür eine gute Lösung.

Der Fehler ist mir vor einpaar Jahren aufgefallen und ich hatte gehoft, dass es inzwischen gefixed ist.

Wir geht ihr damit um?

01.02.2008 - 14:15 Uhr

Ich möchte gerne ein DataTemplate für jedes Item erstellen. Die Eigenschaft ItemTemplate gibt es leider nicht in ListView.

Muss ich das irgendwie mit dem ItemsPanelTemplate verbinden. So richtig verstehe ich das leider noch nicht.

01.02.2008 - 14:07 Uhr

Ja lag an VS 2005. Im Moment entwickel ich mit der Express 2008 Version.

Werde mir denke ein Update auf VS 2008 kaufen.

01.02.2008 - 14:02 Uhr

Ok vielen Dank ich habe etwas rumprobiert.

Als Template für das ItemsPanel habe ich ein UniformGrid benutzt. Das verhält sich ungefähr wie die alt bekannte Symbol Anzeige.

01.02.2008 - 11:30 Uhr

Ok danke.

Damit ist es aber doch nur möglich Spalten zu erzeugen.

 <ListView Name="listView1" Focusable="True">
            <ListView.View>
                <GridView>
                    <GridViewColumn>
                    </GridViewColumn>
                    <GridViewColumn >
                    </GridViewColumn>
                    <GridViewColumn >
                    </GridViewColumn>
                </GridView>
            </ListView.View>
            <ListViewItem>Testeintrag 1</ListViewItem>
            <ListViewItem>Testeintrag 2</ListViewItem>
        </ListView>

Wie aber kann man Symbole anzeigen? Wenn man das auch über Spalten realisiert, müssen diese ja je nach Ansicht dynamisch erstellt werden.

Hat jemand bitte ein Beispiel fü mich?

01.02.2008 - 10:44 Uhr

Gibt es bei dem ListView in WPF noch die Möglichkeit zwischen Liste, Details, Symbole etc. umzuschalten. Ich habe nämlich keine Eigenschaft dafür gefunden. Oder muss dies irgendwie über Templates geschehen?

31.01.2008 - 16:22 Uhr

Ok danke. Dort funktioniert alles wunderbar. 🙂

31.01.2008 - 12:31 Uhr

Ui stimmt, vielen Dank. Da schaut man so lange auf den Code und bemerkt soetwas grundlegendes nicht 🙂

Wenn du mir jetzt noch sagen kannst, wie ich es hinbekomme, dass mir der Designer das Fenster anzeigt, sind meine Probleme gelöst 🙂

31.01.2008 - 11:35 Uhr

Hmm also immer wenn ich in den Designer gehe, sehe ich leider nichts ausser das tolle Whoops!

Es wird bei mir in dem Moment als Fehler angezeigt.

Ich würde das gerne beheben, da ich mir im Designer gerne das Resultat anschauen möchte.

So richtig will es aber auch nicht wirklich funktionieren.


<Window.Resources>
    <DataTemplate x:Key="cdList" DataType="{x:Type MeinNamensraum:FreeDBCDItem}">
        <StackPanel>
            <TextBlock Width="150" TextWrapping="Wrap" Text="{Binding 
              Path=CDName 
              }"/>
            <TextBlock Width="50" Text="{Binding Path=Genre}"/>
            <TextBlock Width="50" Text="{Binding Path=Jahr}"/>
          </StackPanel>
    </DataTemplate>
  </Window.Resources>

<StackPanel>
<ListBox Name="liste" Margin="5" Height="180" ItemTemplate="{StaticResource cdList}" />
</StackPanel>

public class FreeDBCDItem
    {
        string CDName, Genre;
        int Jahr;

        public FreeDBCDItem(string CDName, string Genre, int Jahr)
        {
            this.CDName = CDName;
            this.Genre = Genre;
            this.Jahr = Jahr;
        }
    }

In der ListBox werden 2 leere Zeilen angezeigt.

Im Contstructor steht:


List<FreeDBCDItem> l = new List<FreeDBCDItem>();
            l.Add(new FreeDBCDItem("Hallo", "Schlager", 2007));
            l.Add(new FreeDBCDItem("Du Da", "Pop", 1790));

            this.liste.Items.Clear();
            this.liste.ItemsSource = l;

Vielleicht erkennt er den Namensraum doch nicht wirklich. Oder hat es einen anderen Grund das der Code nicht funktioniert?

FreeDBCDItem ist der richtige Name, den ich vorher als KlasseB beschrieben habe.

31.01.2008 - 10:56 Uhr

Das erstaunliche ist, dass es Kompiliert werden kann aber der Designer meldet wieder, dass das Assembly nicht gefunden wurde. Das mit dem Weglassen oder durch die Übergabe eines leeren Strings funktioniert auch nicht. Dann sagt der Designer, dass das Assembly "" nicht gefunden wurden konnte.

31.01.2008 - 10:40 Uhr

Nein, der XAML und die CS ist von einer Klasse. Innerhalb der CS File habe ich lediglich über die Klasse (A) und unterhalb der Namespace definition eine weitere Klasse (B) hineingeschrieben.

31.01.2008 - 10:29 Uhr

Hallo ich habe eine Klasse:

<Window x:Class="MeinNamespace.MeineKlasseA"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:MeinNamespace="clr-namespace:MeinNamespace;assembly=MeinNamespace" 
    Title="MeineKlasseA" Height="427" Width="724"
    >

Innerhalb der CS Datei habe ich noch eine Klasse (MeineKlasseB) innerhalb von MeinNamespace erstellt.

Jetzt möchte ich gerne darauf in XAML verweisen.

Zur Vollständigkeit es handelt sich um

<DataTemplate DataType="{x:Type MeinNamespace:MeineKlasseB}">

Fehler	1	Assembly 'MeinNamespace' was not found. The 'clr-namespace' URI refers to an assembly that is not referenced by the project.

An was liegt es? Wie kann ich es beheben?

Anzumerken ist noch. Laut Projekteinstellungen ist der Assemblyname=MeinNamespace

29.01.2008 - 11:43 Uhr

Vielen Dank.

Eine Frage hätte ich noch. Der Artikel ändert ja die Visibility des Grids in dem der Button ist.
Ich würde nun aber gerne Eigenschaften des Buttons ändern. Wie müsste dafür die Eigenschaft Property des Setters sein.

Bin zuerst von Grid.Content.NamedesButtons ausgegangen. Aber das will so nicht.

Ich habe noch ein anderes kleines Problem. Ich habe eine Klasse mit Name und Vorname. Im C# Code füge ich im Constructor mehrere Instanzen dieser Klasse ein.

{Binding Path=MeineDaten.Vorname} oder {Binding Path=Vorname} funktionieren leider nicht.

Wäre super wenn mir dabei noch jemand helfen könnte.

29.01.2008 - 10:14 Uhr

Hallo ich nutze eine ListBox und erstelle für die Items ein Textblock. Dadurch kann ein Eintrag auch Icons etc. enthalten.

Nun ist es so, dass die Schriftfarbe Schwarz ist. Die ListBox stellt dies auch ordentlich dar. Sobald ein Eintrag markiert ist, ändert sich aber nicht die Farbe (ist ja auch nicht so definiert).

Genau hier würde ich gerne sagen, dass wenn es Selected ist, soll die Farbe z.B. Weiss sein. Dies würde ich gerne Deklarativ (im XAML) umsetzen. Leider habe ich aber keine Idee, wie ich das umsetzen soll.

Ich hoffe das mir jemand helfen kann.

Gruss
.tim

28.01.2008 - 13:11 Uhr

Ok danke 🙂

28.01.2008 - 11:27 Uhr

Hallo, leider stehe ich vor folgendem Problem. Ich möchte gerne in einem UserControl statisch ein Style/Template definieren. Bei Fenstern kann ich dies ja innerhalb von Window.Resources schreiben. Aber wie funktioniert das bei Libs bzw. pro UserControl einer Lib.

Wäre super wenn mir das jemand sagen könnte.

Vielen Dank und Gruss
.tim

21.01.2008 - 16:51 Uhr

Problem gelöst.
Für alle die das gleiche Problem haben.

Bitte schaut euch den Artikel an:
http://www.codeproject.com/csharp/CSDynamicScrRes.asp?df=100&forumid=38736&select=800137

Nachdem die Breite und Höhe der DEVMODE Struktur dm gesetzt wurde. Muss noch folgendes hinzugefügt werden.

dm.dmDisplayFrequency = <Die gewünschte Rate>;
                dm.dmFields |= 0x00400000;

Die zweite Zeile bewirkt, dass auch die Rate aktualisiert wird.

21.01.2008 - 10:26 Uhr

Hallo, ich möchte gerne die Bildwiederholfrequenz ändern.

Wichtig ist dabei, dass die Änderung sofort wirksam wird und nicht erst bei einem Neuanmelden oder Neustart des Rechners.

Hat damit bereits jemand Erfahrung?

Dank und Gruss
Tim

09.01.2008 - 14:06 Uhr

Bitte um eine hoffentlich abschliessende Antwort.

09.01.2008 - 14:06 Uhr

Global Hooks, genau das war das was ich gesucht habe.

Konnte es leider nicht benennen danke.

09.01.2008 - 14:04 Uhr

Gibt es im Framework eine Funktion md5(string filename) oder ähnlich?

09.01.2008 - 13:01 Uhr

Hallo ich möchte Informationen über Dateien in einer Datenbank speichern. Der Pfad und der Dateiname kann bei den Dateien variieren.

Jetzt suche ich eine Hash Routine die in C# am besten schon im Framework vorhanden ist und aus einer Datei eine Checksumme erstellt.

Die perfekte Signatur wäre File2GUID(string filename);

Hat jemand eine Idee?

09.01.2008 - 12:49 Uhr

Hallo, da meine Software den Rechner in den Ruhezustand schicken können soll, müsste ich die Tastatur und Maus überwachen.

Ich möchte überprüfen ob eine Aktivität ausserhalb meiner Software statt findet.
Dabei spielt es für mich keine Rolle ob die Maus bewegt wird oder eine Taste gedrückt wird.

Vielen Dank für eure Hilfe.

08.01.2008 - 13:58 Uhr

Ne es geht um


public class XYZ
{
	public static andereKlasse bla = new andereKlasse();

	public XYZ()
	{
		bla.methode();
	}

	static void Main()
        {
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
	try
      {
            Application.Run(new MainForm());
     } 
catch
 { MessageBox.Show("fehler"); }
        }
}

Wird immer wenn das Ereignis Application.ThreadException ausgelöst wird auch MessageBox.Show("fehler"); ausgeführt? Wird das Ereignis und der catch block auch bei einem Fehler im Konstruktor von bla ausgeführt?

08.01.2008 - 11:48 Uhr

Verstehe ich das richtig, dass ohne die Angabe von BeforeFieldInit es "zufällig" ist?

Es wäre schön wenn Run(...) immer auch die statische Instanziierung vornimmt.

Wie kann ich das einstellen?

Mein Ziel ist, dass der try-catch Block in der Main() immer funktioniert.

08.01.2008 - 11:32 Uhr

Was genau soll u.U. bedeuten?

Wann wird es (direkt oder indirekt) nicht aus der Main heraus aufgerufen?

08.01.2008 - 11:27 Uhr

Ich habe nun folgenden Methoden erstellt/ersetzt

static void Main() 
	    {
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            Application.Run(new MainForm());
		}

        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            MessageBox.Show(e.ToString());
        }

In MainForm() habe ich throw new Exception("test"); zugefügt.

Leider wird die Exception einfach nur geworfen. Die MessageBox wird garnicht angezeigt. Ausserdem soll die MessageBox statt der Exception angezeigt werden.

Ein try-Block um das Application.Run würde auch alles abfangen?
Das würde auch reichen.

08.01.2008 - 11:16 Uhr

Perfekt!

Genau sowas habe ich gesucht:

Application.ThreadException

Ich danke euch.

Gruss
Tim

08.01.2008 - 11:11 Uhr

Hallo, danke für deine Antwort.

Ich habe eine Klasse mit statischen Membern, dazu gehört auch soetwas wie


public static meineKlasse dbWrapper = new meineKlasse();

Diese Klasse wird ja nicht innerhalb der Main Methode aufgerufen.

Muss ich nun bei dem "statischen Instanziieren" ein try-catch Block in dem Constructor durchführen?

08.01.2008 - 10:42 Uhr

Hallo, da bei einem Fehler der Kunde immer den Stack Trace etc an uns senden muss, würden wir gerne eine Funktion "Problem senden" einführen.

D.h. Bei einer Exception wird nicht der Fehler angezeigt, sondern nur eine MessageBox:

"Ein Fehler ist aufgetreten"
<Ignorieren> <Problem senden>

Bei dem Button Problem senden soll u.a. der StackTrace irgendwie übertragen werden.

Mein Problem ist, wie lege ich sowas wie ein try Block über die ganze Anwendung.

Habt ihr schoneinmal soetwas realisiert?

Gruss
Tim

06.12.2007 - 09:54 Uhr

Kennt jemand einen "FTP Client" mit strong name?

05.12.2007 - 17:41 Uhr

Es handelt sich dabei um ein "FTP Client" welchen ich nutze. In dem Framework habe ich leider keine FTP Funktionen gefunden. Auf die Entwicklung habe ich leider keinen Einfluss 🙁

05.12.2007 - 16:31 Uhr

Wie genau stelle ich das an? Ich habe nur eine DLL?

05.12.2007 - 14:16 Uhr

Wenn ich das richtig sehe, kann ich in der .NET 2.0 Framework Konfiguration unter Laufzeitrichtiglinien/Computer/Codegruppe meine Anwendung konfigurieren.
Dort habe ich eine neue Codegruppe mit der Bedingung "Starker Name" angelegt.
Dadurch kann die Anwendung auch in einer neueren Version vorliegen ohne das die Codegruppe angepasst werden muss. Die anderen Bedingungen kann ich scheinbar nicht wirklich für meinen Zweck nutzen.

Deshalb habe ich ersteinmal versucht meiner Anwendung einen starken Namen zu geben.

Dies funktioniert nicht:

Fehler 3 Fehler beim Generieren der Assembly -- Die Assembly BytesRoad.Net.Ftp, auf die verwiesen wird, hat keinen starken Namen.

Wie kann ich das "Unterdrücken" bzw. was kann ich dagegen machen.

04.12.2007 - 16:19 Uhr

Meinst du mit Sicherheitsrichtlinien die Datei bezogenen Sicherheitseinstellungen (Wer darf die Datei ausführen etc)?

Oder gibt es noch andere?

In der .NET Framework Konfiguration habe ich nichts gefunden, was mir die Rechte gibt/nimmt.

Die Umgebungsvariablen, Pfadeinstellungen etc. sind i. O.

Was meinst du mit Code-Berechtigungen? Sind das die .NET Framework Konfigurationseinstellungen?

Wie kann ich in dieser Konfiguration einstellen, dass eine bestimmte Anwendung keine rechlichte Einschränkungen durch das Framework hat.

04.12.2007 - 15:50 Uhr

Hallo, ich möchte meine Anwendung auf einen anderen Rechner legen und von dort aus starten.

Ich habe gehört, dass manche Aktionen dann nicht funktionieren: Exception (Permission etc)

Könnt ihr mir dazu etwas sagen?

Läuft dort alles genauso?

08.10.2007 - 13:00 Uhr

Ich habe folgendes Problem:

System.UnauthorizedAccessException: Der Zugriff auf den Pfad \tjo\eti\3.bat wurde verweigert.

bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

bei System.IO.File.Delete(String path)

bei KrebsEtiketten.Form1.button_print_Click(Object sender, EventArgs e)

bei System.Windows.Forms.Control.OnClick(EventArgs e)

bei System.Windows.Forms.Button.OnClick(EventArgs e)

bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

bei System.Windows.Forms.Control.WndProc(Message& m)

bei System.Windows.Forms.ButtonBase.WndProc(Message& m)

bei System.Windows.Forms.Button.WndProc(Message& m)

bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Process.Start(file).WaitForExit();

                File.Delete(file);

Wie kann ich das Problem beheben. Die Datei befindet sich, wie man anhand von "\" erkennen kann im Intranet.

Vielen Dank im Vorraus.

02.10.2007 - 11:33 Uhr

Ich habe noch etwas probiert. Die Etiketten müssen nur Text sein. Ein Etikett ist 4 Zoll hoch.

Meine Lösung ist im mom ne Textdatei mit Steuerzeichen zu erstellen und per TYPE filename > LPT1 auf den Drucker umzuleiten. Dadurch ergibt sich aber das Problem, dass es sich im Produktivbetrieb um einen Netzwerkdrucker handelt. Gibt es ne Möglichkeit auf einen Netzwerkdrucker umzuleiten.

Welche Möglichkeiten/Probleme seht ihr bei dieser Möglichkeit.

Danke für die Hilfe.

24.09.2007 - 10:39 Uhr

Weisst du was der Generic Treiber erwartet? (Postscript etc?). Man könnte bei primitiver Ausgabe, z.B. Etikettendruck das PS oder PCL selber erzeugen und den Seitenvorschub weglassen oder?

Hast du schonmal in der Richtung ermittelt?

21.09.2007 - 15:22 Uhr

C/S-Anwendung?

EDIT: oh wahrscheinlich Client / Server oder^^

Bei CodeProject habe ich keine Lösungen finden können. Das Thema scheint viel seltener irgendwo vorzukommen als man denken würde.

21.09.2007 - 11:42 Uhr

Vielen Dank, bist du noch am aktiv am testen oder ist das Thema für dich erstmal auf Eis gelegt?

20.09.2007 - 16:27 Uhr

Ok danke 🙂

Mit welchem Reporting Tool hast du gute Erfahrungen gemacht. Würde dann darauf umsteigen.

20.09.2007 - 12:26 Uhr

Hallo, vielen Dank für deine Antwort.

Für die Etiketten kann auch ein anderes "Reporting-Tool" eingesetzt werden.

Mit welchem hattest du die beste Erfahrungen?

Ich verstehe einfach nicht wieso ein Generic Printer Driver genutzt werden muss. Die originalen Treiber sind doch extra zum Drucken geschrieben 😉

Wie machen das wohl die anderen, die auf Endlospapier ohne Seitenvorschub drucken?

20.09.2007 - 10:09 Uhr

Irgendwie bin ich irritiert. Hat noch nie jemand Etiketten auf Endlospapier bedruckt?

Bin um jede Hilfe dankbar, auch wenn es mit dem Kauf eines neuen Druckers verbunden ist.

19.09.2007 - 14:55 Uhr

Bin ich der einzige der das Problem hat. Im Forum und unter google habe ich dazu nichts gefunden.

19.09.2007 - 11:07 Uhr

Danke.

Genau dieser Seitenvorschub nervt.

Diesen Treiber kann ich aber nur bei lokalen Druckern auswählen.
Der benannte Drucker ist aber leider ein Netzwerkdrucker.

Bei dieser Einstellung kann auch nur reiner Text ausgegeben werden? Oder kommt der Drucker mit Postscript Daten bei der Einstellung RAW klar?

Es gibt doch auch Windows Software, die mit dem std. Treiber arbeitet und mit Endlospapier umgehen kann. Wie wird es dort gemacht?

Soetwas muss doch möglich sein 🙁