Laden...
Avatar #avatar-1918.gif
Benutzerbeschreibung
![](http://www.silbsch.com/senna.gif)

Forenbeiträge von ayrtonsenna Ingesamt 27 Beiträge

01.07.2006 - 15:37 Uhr

Das eigentliche erstellen der Datei mache ich natürlich im try-catch-Block.
Meine "Problem" liegt dort, wo ich dem Nutzer anbiete ein Default-Dir zu wählen (bei den Settings). An der Stelle möchte ich ja eigentlich keine Datei erstellen, sondern nur prüfen, ob es in dieses Dir priniziell möglich ist, Dateien zu erstellen.

Aber ich sehe schon, dass ich um den Anlegen-Löschen-Versuch nicht umhin komme 😉

01.07.2006 - 15:08 Uhr

Danke für die Antworten.
Es ist wirklich etwas unschön es über die try-catch methode zu versuchen.
Ich gebe den User die Möglichkeit ein Default-Dir für seine Dateien anzugeben.
Wenn der User ein Verzeichnis gewählt hat, soll die Überprüfung auf readonly erfolgen.
Da muss ich also versuchen eine Datei anzulegen und diese dann gleich wieder löschen. Hmm.
Gibt's den keine bessere Lösung.

@herbivore
Ich habe für mein TestDir im sowohl im Win-Explorer->Eigenschaften das Häckchen "Schreibgeschützt" gesetzt und in den Sicherheitseinstellungen z.B. Schreiben und Dateien anlegen verweigert, Lesen und Ausführen sowie Ordnerinhalt auflisten erlaubt.
In dem Testdir kann ich wirklich keine Dateien schreiben.

30.06.2006 - 12:46 Uhr

Hallo Welt,
ich möchte für ein Verzeichnis prüfen, ob es readonly ist, d.h. ob darin Dateien anlegen kann.
So probiere ich es derzeit:

DirectoryInfo di=new DirectoryInfo(sMeinPfad);
if((di.Attributes & FileAttributes.ReadOnly)==FileAttributes.ReadOnly)
{
    //machwas
}
else
{
   //oder was anderes
}

Leider geht er immer in den else-Zweig.
Wenn ich nun in dem Dir eine Datei anlegen will, bekomme ich eine UnauthorizedAccessException (Der Zugriff auf meinPfad wurde verweigert)

Wie kann ich das vorher prüfen?

29.06.2006 - 11:53 Uhr

Probier mal folgendes

 
System.Data.OracleClient  conn = new System.Data.OracleClient();
conn.ConnectionString="Provider=OraOLEDB.Oracle;" +
"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SID=Best)));"+
"User ID=dbuser;" +
"Password=dbpasswd;";
conn.Open();

Wenn man's nicht gleich sieht: Im Connection-String geändertes CONNECT_DATA-Statement

09.06.2006 - 10:44 Uhr

Hallo,
ich als noob würde das so machen (in Form1)


// beim öffnen der neuen Form
Form2 myFrm = new Form2();
myFrm.SetLabelText("Hallo");
myFrm.FormClosing += new FormClosingEventHandler(mainForm_FormNormal);
...

private void mainForm_FormNormal(object sender, FormClosingEventArgs e)
{
            e.Cancel = true;
            this.WindowState = FormWindowState.Normal;
}
09.06.2006 - 10:33 Uhr

Hallo Forum,
gibt es im Datagridview die Möglichkeit zwei Zellen zu verbinden (ähnlich wie Excel-Zellen)?
Hintergrund: Ich baue gerade ein Programm zur Auswertung von Bestellungen. Im Datagridview habe ich dann die Spalten Stückzahl, Artikelbezeichnung, Einzelpreis, Gesamtpreis. Wenn nun die bestellte Stückzahl eines Artikels die lieferbare Menge überschreitet, sollen die beiden Zellen für Einzelpreis und Gesamtpreis verbunden werden und es soll "Nicht lieferbar" oder so drinstehen.
Danke für Lösungsvorschläge...

22.05.2006 - 10:34 Uhr

Hallo Leute,
ich suche ein Steuerelement zur Anzeige von PDF-Dateien, das auch funzt wenn kein PDF-Reader installiert ist. Hat jemand eine Empfehlung.
Danke schon mal im voraus

17.05.2006 - 09:15 Uhr

Hallo und danke für die Antwort,
die Dinge wie Adressen, email, Telefon usw habe ich schon in eine andere Tabelle gepackt.
Mein Problem ist wirklich die Abbildung der "PersonInFirma" (siehe 1.Posting).
Von der "großen" Tabelle habe ich mich verabschiedet. Ich favorisiere derzeit folgende Lösung:

  1. eine Contact-Tabelle mit den 3 Feldern ID,IDPerson, IDFirma. Die ID aus dieser Tabelle verwende ich dort, wo ein Kontakt benötigt wird z.B. bei Vereinbarungen usw.
  2. eine Namen-Tabelle, in der die eindeutigen Dinge über Personen und Firmen stehen, z.B. Name
  3. weitere Tabellen für Adressen, mail, Tel, Bankverbindung usw. Hier ist die ID der Contact-Table der Fremdschlüssel.
16.05.2006 - 10:39 Uhr

unter http://adodotnetsqlite.sourceforge.net/ gibts einen ADO.Net Data Provider + Doku und Beispielen.
Eine andere Möglichkeit ist sourceforge.net/projects/adodotnetsqlite/
Der ConnectionString sieht etwa so aus:

sqlite_conn.ConnectionString = "Data Source=c:\\test-database.db;Version=3;New=True;Compress=True;";

Zu der Frage mit dem Passwort kann ich dir leider nicht weiterhelfen...

16.05.2006 - 09:28 Uhr

Hallo,
ich will demnächst ein Programm zur Kontaktverwaltung schreiben und sammle schon mal einige Gedanken. Leider bin ich beim DB-Entwurf schon wieder am Ende. X(
Folgendes Szenario muss abgedeckt sein:
Es muss eine Trennung von Firmen und Personen sein, beide sollten aber möglichst in einer Tabelle stehen. Jede Person kann aber (theoretisch) in mehreren Firmen mitarbeiten, also PersonInFirma. Diese PersonInFirma ist dann für andere Sachen auswählbar.
Beispiel:
Ich habe Firma F1 und Firma F2 und Herrn Schmidt. Herr Schmidt ist nun in F1 für die Hardware und in F2 für die Software verantwortlich.
D.h. ich habe 3 Einträge für Herr Schmidt:

  1. Herr Schmidt als Privatperson (z.B. email schmidt@...de),
  2. Herr Schmidt als HW-Admin in F1 (z.B. email schmidt@f1...de),
  3. Herr Schmidt als SW-Admin in F2 (z.B email schmidt@f2...de).

Wie bilde ich das am besten ab.
Eine Möglichkeit wäre 3 Einträge in eine große Tabelle. Aber ich weiß nicht, ob das sinnvoll ist, weil dann Name,Vorname, Geburtstag usw. auch 3 mal drin stehen.
Oder macht man nur einen Eintrag in eine "große" Tabelle für Herr Schmidt und die einzelnen PersonInFirma in einer kleinen Tabelle mit idPersonInFirma, idPerson, idFirma.
Oder vielleicht doch anders? Ich hätte gern eure Meinung gewusst.
Vielen Dank

12.05.2006 - 10:34 Uhr

Hallo,
hab mal wieder eine Anfängerfrage, weil ich es noch nicht ganz verstanden hab.
Kann mir bitte jemand den Unterschied zwischen

Irgendwas i=(Irgendwas) irgendwasähnliches;

und

Irgendwas i=irgendwasähnliches as Irgendwas;

Habe zwar schon Doku gelesen, aber der Unterschied ist mir nicht ganz klar. 🤔
Danke

11.05.2006 - 10:21 Uhr

Zum Beispiel wenn man sicherstellen will, das es nur eine Instanz einer Form gibt.
Wenn man die eine Instanz schließt und später mit instanzMeinerSingeltonForm.Show() anzeigen will...Bang

11.05.2006 - 09:43 Uhr

Hi,
da ich gerade mit C# anfange, bin ich nun beim Singelton angekommen und hab mal wieder eine (Anfänger-)Frage.
Ich habe derzeit 2 Varianten für eine Singelton-Implementierung
Variante 1:

public sealed class Singleton
{
    static Singleton instance=null;

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            if (instance==null)
            {
                instance = new Singleton();
            }
            return instance;
        }
    }
}

und die elegante und von MSDN empfohlene Variante 2:

sealed class Singleton 
{
    private Singleton() {}
    public static readonly Singleton Instance = new Singleton();
}

Wenn ich beispielsweise den Singelton zerstören will, weil ich ihn (erstmal) nicht mehr brauche, kann ich in Variante1 im Dispose instance=null setzen. Aber wie mache ich das ich Variante2?
Danke für Tipps und Erläuterungen...

10.05.2006 - 14:59 Uhr

Hallo ihr Schlauen in aller Welt,
nun bin ich komplett verwirrt und sehe den Wald vor lauter Bäumen nicht mehr X(

Ich wollte mir den Tip von feadur zu Herzen nehmen und ein Interface definieren. Nur Leider bin ich bs jetzt kläglich gescheitert.
Was muss denn nun wo stehen.
Ich finde im MDI-Parent müsste

public event TestEventHandler TestButtonClicked;

Aber was soll dann im Interface stehen? Die Definition für den Handler?
Und wo muss ich das Child-Fenster dann für das Event anmelden?
Wäre für ein paar entwirrende Tipps dankbar...

10.05.2006 - 11:35 Uhr

Danke für die Hilfe,
das

Parent.TestButtonClicked += new TestEventHandler(TestButton_Click);

hatte ich bei den Childs auch schon drin, aber es kam immer zu Fehlern.

Mit Interfaces habe ich noch nicht gearbeitet, muss ich mich wohl erstmal reinvertiefen.
@feadur
Könntest du deine Gedankengänge dazu noch etwas ausführlicher beschreiben?
Danke

10.05.2006 - 10:04 Uhr

Tach Leute,
ich hab da ein Problem mit einem Event, das ich gern an MDI-Childs geben möchte.
Folgende Ausgangssituation:
Ich habe ein MDI-Parent, indem auch noch ein Button sitzt. Wenn ich den Button drücke soll mein Event an alle MDI-Childs gehen.
Wie mache ich denn das?
Im Mdi-Parent habe ich folgendes definiert


public delegate void TestEventHandler(object sender, EventArgs e);
public event TestEventHandler TestButtonClicked;

Für den Button selbst, der dann das Event auslöst:


private void btnTest_Click(object sender, EventArgs e)
{
   if(TestButtonClicked != null)
   {
      TestButtonClicked(this, e);
   }
}

Aber was muss ich tun, damit die MDI-Childs das Event ausnehmen können?
Wie muss der Handler dafür aussehen?

Danke für eure Hilfe

10.05.2006 - 09:50 Uhr

Danke, der Tipp mit ClickOnce war sehr gut. 👍

08.05.2006 - 09:58 Uhr

H Forum,
außer einem Mini-Projekt hab ich keine Ahnung von C#.
Da demnächst ein größeres Projekt auf mich zukommt, hab ich mal einige allgemeine Fragen.
Zum Beispiel würde ich gern wissen, wie man ein online-update seiner Software organisiert.
Wenn das Programm startet, wird versucht eine Verbindung zu einem Server aufzubauen, und dann?
Was muss auf dem Server stehen, ein neues Setup? Und was muss ich dann alles vom Server holen?
Und wie binde ich das dan lokal ein?
Für ein kleines Beispiel (bzw link dahin) wäre ich sehr dankbar.

Danke und schöne Grüße in die Welt...

07.04.2006 - 12:30 Uhr

den zweiten Edit hatte ich erst später gesehen.

Die Sache mit dem DataAccessType ist sehr clever. Danke für den Tip.
Ich hab's noch nicht getestet, aber ich glaube das hilft mir weiter.
Danke

06.04.2006 - 12:01 Uhr

hi,
danke für die schnelle Antwort.
So ähnlich hatte ich mir die Strucktur auch gedacht.
Nur wie komme ich jetzt an die konkreten Daten.
Also nehmen wir dein Beispiel und ich will das Objekt mit der ID=datensatzID2

MyBusinessObj mbo = new MyBusinessObj("datensatzID2");

im Konstruktor:


MyDataXML.GetData("tabellenname", "datensatzID2")

Und was muss ich bei MyDataXML.GetData machen?
Muss ich da etwa durch alle Knoten laufen und gucken, ob das Attribut ID==datensatzID2 ???
Oder kann ich da auch so was wie Where-klausen definieren???

Ich fühle mich, als hätte ich ein Brett vorm Kopf...

06.04.2006 - 11:35 Uhr

Hallo,
ich hab da eine App, die sich die Daten aus einer Access-DB holt.
Ich habe auch schön nach dem 3-Schicht-Prinzip gearbeitet:

  1. Anzeigeschicht
  2. Geschäftsobjekte
  3. Datenzugriff
    <stolz> 😁 </stolz>

Nun wollte ich das ganze so umbauen, dass die Daten aus XML-Files kommen, nur weis ich nicht wirklich wie das dann auszusehen hat.
Derzeit gebe ich beispielsweise im Konstruktor meiner Businessobjects die ID+Tabellenname an die Datenzugriffsklasse, bastel dort die entsprechende SQL-Anweisung und gebe die empfangenen Daten zurück.
Nun kann ich ja auf ein XML wohl nicht mit einem "SELECT * FROM ??? WHERE ..." losgehen.
Was nehme ich dazu überhaupt: XmlDocument, XmlDataDocument, XPathDocument??? <amkopfkratz>

Hat jemand einen Tip für mich, wie ich am besten vorgehe?

24.03.2006 - 17:24 Uhr

Hallo,

genau das ist die Frage gewesen: muss ich für jedes Control einen EventHandler haben?
Dass der Handler dann immer auf das selbe zeigt, ist mir schon klar. 🙂

Danke....

24.03.2006 - 09:15 Uhr

Aber den EventHandler muss ich ja für jedes Element definieren, oder?
Dass das dann nur ein paar Zeilen sind, ist mir schon klar... 🙂

Aber Danke für den Tip mit dem KeyPreview. Werde damit ein wenig rumprobieren.

MfG

23.03.2006 - 12:19 Uhr

Hallo Forum,

ich möchte in einem Usercontrol auf die Tastenkombination Strg+S (speichern) reagieren.
Ich habe ein UserControl welches Daten eines eigenes Objekts darstellt. Der Nutzer kann in diesem Control die Daten des Objekts bearbeiten und dann über einen Button speichern.
Eine variable Anzahl solcher Contols werden in ein FloatLayout-Panel geschoben.

Nun möchte ich realisieren, dass beim Drücken von Strg+S ebenfalls gespeichert wird.
Dafür habe ich folgendes für eine TextBox auf dem Usercontrol geschrieben:


private void txtName_KeyDown(object sender, KeyEventArgs e)
{
       if(((Control.ModifierKeys & Keys.Control)==Keys.Control) && (e.KeyCode==Keys.S))
       {  
                 // speichern 
       }
}

Das funktioniert auch super. Nur wenn ich das Event fürs ganze Control definiere, kommt kein Event an.
Muss ich dieses Event für jedes Steuerelement auf dem Usercontrol definieren?
Das ist ja mehr als umständlich.
Gibt es noch ne andere Möglichkeit, wie ich Strg+S realisieren kann.
Bei google habe ich nichts Brauchbares gefunden, obwohl es doch nichts Ungewöhnliches ist.

Danke für eure Tipps

20.03.2006 - 18:38 Uhr

Danke für die vielen Antworten... 👍
Den Tipp mit dem Singleton werde ich morgen mal probieren.

@svenson: Respekt... nicht schlecht geraten.

Sven

20.03.2006 - 11:36 Uhr

Danke für die schnelle Antwort...
aber leider sehe ich den Wald vor lauter Bäumen nicht.
Ich habe Also folgende 2 Klassen:


class Klasse1 {
     private static string meinName;

     static Klasse1() {
          meinName="Testname";
     }

     public static string Beispiel{
          get { return "Das ist ein sinnloses Beispiel von " + meinName;}
     }
}

class Klasse1a : Klasse1 {
     private static string meinName;

     static Klasse1() {
          meinName="Testname2";
     }
}

Wenn ich jetzt

Klasse1a.Beispiel

aufrufe, kommt trotzdem "Testname" und nicht "Testname2".

20.03.2006 - 11:07 Uhr

Hallo Liste,

ich habe hier ein Problem, bei dem ich mich irgendwie verheddert habe und aus dem Fitz meine Hirnwindungen nicht mehr rauskomme.
Ich habe eine statische Klasse, die verschiedene Methoden bereitstellt. Also etwa so:


class Klasse1 {
     private static string meinName="Testname";
     public static string Beispiel{
          get { return "Das ist ein sinnloses Beispiel von " + meinName;}
     }
}

soweit ist ja alles prima.
Nun brauche ich aber 2 Arten dieser Klasse, also wo nur ein paar private Variablen anders gesetzt sind. Etwa so:


class Klasse1a {
     private static string meinName="Testname2";
     public static string Beispiel{
          get { return "Das ist ein sinnloses Beispiel von " + meinName;}
     }
}

Es liegt ja nun nahe, dass Klasse1a von Klasse1 erbt, aber da habe ich mich nun verheddert.
Hat jemand von euch eine Idee, wie ich das anstelle?
Danke