Laden...

Forenbeiträge von falangkinjau Ingesamt 171 Beiträge

24.11.2006 - 08:51 Uhr

Hallo,

sehr gut sind die von CoreLab. http://www.crlab.com/

Gruß falangkinjau

23.11.2006 - 21:22 Uhr

Hallo,

ich hab ein Programm C# geschrieben.

du bist also fertig. Da würde ich auch nichts weiter machen sondern wie schon empfohlen das Programm in den Autostartordner schieben. Für den Start halt.

Dann würde ich das Programm bei geplante Task einbinden. Vielleicht reicht dir das ja schon.

Gruß Falangkinjau

23.11.2006 - 21:07 Uhr

Hallo,

danke genau das ist es.

Hatte natürlich auch schon in meiner deutschen und localen MSDN gesucht, nur mit den Suchbegriff Template hat es nicht geklappt. Visual Studio-Vorlagen hätte ich eingeben sollen, dann hätte ich es gleich gefunden.
Werde das nächstemal gleich auf msdn.com gehen.

Gruß falangkinjau

23.11.2006 - 14:47 Uhr

Hallo,

z.B. $itemname$ oder $rootnamespace$.

gibt es für die Parameter/Propertys/Attribute ?( eine Auflistung/Tabelle welche im Template benutzt werden dürfen oder in welcher Klasse/Schema muß ich Browsen?

Habe das gleich mal ausprobiert und das schönste ist, wenn Änderungen an den Templates in den Foldern
Microsoft Visual Studio 8\Common7\IDE\ItemTemplatesCache bzw. Microsoft Visual Studio 8\Common7\IDE\ProjectTemplatesCache vorgenommen werden, dann sind diese gleich Global.
Bin mir allerdings nicht sicher, ob das so gedacht ist von MS.

Gruß falangkinjau

22.11.2006 - 17:20 Uhr

Achso,

ist local getestet worden.

Gruß falangkinjau

22.11.2006 - 17:06 Uhr

Hallo,

also 100000 dummy Datensätze in deine Tabelle einfügen ca. 1-2s. Nicht gestoppt.

Im Querybrowser von MySql braucht er für die der 100000 Datensätze 2,5s.

Im einer Form, also über eine IDataReader und table.Load(IDataReader...) 3,6s.

Da stimmt irgend etwas nicht mit eurem DB-Server. Was kann ich natürlich auch nicht sagen. Da muß der Admin ran. Ist 2.0.24a ein Release?

Gruß falangkinjau

22.11.2006 - 16:07 Uhr

Hallo,

InnoDb ist immer gut. Ansonsten kann ich dir dazu auch nicht viel Erzählen. Da ich erst bei 5.0.19 bin.

Gehört zwar nicht mehr zu C#, aber du kannst mir mal die Struktur der Tabelle schicken. Im MySql QueryBrowser gehst du dafür auf die Tabelle und mit der rechten Maus kannst du das Statement für die Tabelle ins Clipboard kopieren.
Es ist doch nur eine Tabelle oder, und ohne ForeignKeys?

Dann kann ich das hier Testen. Werde aber erst am späten Abend bzw. Morgen dazukommen.

Gruß falangkinjau

22.11.2006 - 14:33 Uhr

Hallo,

warum konvertierst du einen vorhandenen System.String, wenn du ihn danach zur DB schicken möchtest?

Nehme für dein Insert gleich den String.
Das geht mit MEDIUMTEXT.
Habe ich gleich selber mal probiert, da ich MEDIUMTEXT noch garnicht kannte.

Gruß falangkinjau

22.11.2006 - 12:28 Uhr

Hallo,

meinst du das vielleicht?

Im Designer
DisplayMember = SubGroups

Gruß falangkinjau

22.11.2006 - 11:49 Uhr

Hallo,
hier der Teil mit dem Datum.


//Bei Bedarf zu Int parsen
        Int32 _deinJahr  = ausSpalteJahr;
        Int32 _deinMonat = ausSpalteMonat;
        Int32 _deinTag   = ausSpalteTag;

        DateTime _deinDatum = new DateTime(_deinJahr, _deinMonat, _deinTag);

Um die Daten aus Access zu holen, da schaust du mal ein paar Beiträge weiter unten des heutigen Tages. Da ging es um ein Select. Dort wird über Ole mit einer AccessDB gearbeitet. Kopieren, verstehen, anpassen und fertig.

Für die ListBox findest du dann bestimmt genug Beispiele im Netz.

Gruß falangkinjau

22.11.2006 - 11:18 Uhr

Hopla,
da habe ich wohl die Namen etwas durch einander gebracht. 🤔

Unabhängig davon kann ich hier in VS2005 in einem Projekt sowohl PocketPC2003 als auch WinCe 5.0
kein Event über den Designer oder auch a'la IntelliSence für eine Listbox finden.
Das auch nicht im ObjectBroswer für das CompactFrameword 2.0.

Das meine ich damit hat er Recht.

Hoffe alle Unklarheiten beseitigt zu haben.

Gruß falangkinjau

22.11.2006 - 10:42 Uhr

Hallo dimwue,

wo nimmst Du das ClickEvent der ListBox für das CF2.0 her?

gehho schein recht zu haben. Es gibt keins.

Ich kann auch keins finden, ob im Designer oder auch händisch.
Der Objektbrowser zeigt mir auch keins an. Bei MSDN kann ich auch nichts finden.

Gruß falangkinjau

22.11.2006 - 10:12 Uhr

Hallo,

string sBefehl = "SELECT * FROM Kunden WHERE Ort" + lbAuswahl.Text;

Wenn jetzt Ort z.B: Berlin ist dann wird doch folgendes Query abgesetzt

SELECT * FROM Kunden WHERE OrtBerlin;

Vielleicht so was:
SELECT * FROM Kunden WHERE Ort='Berlin' oder SELECT * FROM Kunden WHERE Ort like 'Berlin';

Was da nun genau hinkommt weiß ich nicht, da ich mich mit Access nicht auskenne.

Gruß falangkinjau

22.11.2006 - 09:52 Uhr

Hallo Schminki86,
ich glaube du meinst sowas.
Eine Möglichkeit:


static void Main()
{
     DeinPasswortDialog _deinPasswordDialog = new DeinPasswortDialog();

     if (_deinPasswordDialog.ShowDialog() == DialogResult.OK)
     {

          Application.Run(new MainForm(Übergabe des Passwort an Deine Mainform, sofern notwendig))
                 
     }
}

Gruß falangkinjau

21.11.2006 - 12:56 Uhr

Hallo Rainbird,

Ich sehe schon dass es wie mit vielen anderen Sachen ist.
Große Begriffe und wie du auch schreibst sehr schwammig.

Nein, das ist mir schon klar das natürlich nicht alles und wenn überhaupt auf den Datenbankserver passieren soll. Obwohl dir diese auch gerne xml zurückgeben kann, wenn du es möchtest und darfst. Können doch alle großen DB's oder irre ich mich da.

Mir ging es bei meiner Ausführung nur um das grundsätzliche Verständnis der Frage, wo sollte oder kann eine Validierung der Daten im Context eines MVC-Windowsapplikation stattfinden.
Wie du schon schreibst, muß man sich halt vorher genau überlegen was eigendlich gefordert ist, um sich dann für eine Architektur festzulegen.

Danke und Gruß
falangkinjau

21.11.2006 - 00:24 Uhr

Hallo Rainbird,
erstmal will ich mich meinen Vorpostern anschließen und mich bedanken für das Beispiel welches die mir noch sehr nebulöse, schleierhafte Welt MVC's, Patterns etc. etwas Licht ins Dunkel bringt.

Du Prüfung der Daten und die eigentliche Speicherung findet nicht im Model statt, sondern in der entsprechenden Geschäftslogik-Komponente auf dem Applikationsserver (so vorhanden).

Genau damit habe ich noch so ein Problem:

Wenn ich es richtig verstanden habe ist in deinem Beispiel BusinessComponents gleich Geschäftslogik. Mal vom DBHelper abgesehen.

Theoretisch kann doch die Geschäftslogik schon auf Datenbank-Ebene abgebildet sein. Zum Beispiel lasse ich nur Datensätze zu die eine korrekte Postleitzahl haben.
Wird gegen diese Regel verstossen, dann wirft die Datenbank eh eine Exception die zum Client durchgereicht wird und die Transaction wird abgebrochen.

Das wäre für mich die einfachste Lösung. Ich brauche nichts zu prüfen, da die Datenbank das für mich schon macht.

Wie wir nun aber wissen, möchte irgend jemand schon bei der Eingabe in der Textbox bzw. im DataGridView wissen bzw. ist gefordert das keine Buchstabeneingabe möglich sein soll.

Es sollte/muß also im View geprüft werden. Oder wo findet das nun statt?
Wo würdest du nun in deinem Beispiel die Postleitzahl prüfen, wenn es gefordert wäre das nur Zahlen eingegeben werden dürfen?

Mir ist eben auch noch folgendes durch den Kopf gegangen.
Ist es nicht gleich besser bei größeren Anwendungen die Models und Views als jeweils ein Plugin zu implementieren, welche der PluginHost, die Hauptanwendung(Controller), dann ladet?

Gruß falangkinjau

03.11.2006 - 23:51 Uhr

Hallo,
habe mal ein kleines Beispiel fertig gemacht wie es hier bei mir definitiv über COM bis auf wenige Ausnahmen geht.
Zu den Ausnahmen komme ich gleich zurück.

Hier der Code:


/*
 * 
 * falangkinjau
 * Date: 03.11.2006
 * Time: 21:44
 * 
 * Kurzes Beispiel zum Auslesen und Schreiben eines Notesdokuments.
 * Ich betone Beispiel wegen der hardcodierten Parameter, Prüfen auf null etc.
 * Das Beispiel wurde nur lokal getestet.
 * 
 Vorher prüfen: UMGEBUNG; UMGEBUNG; UMGEBUNG siehe hier die wirklich ausreichende Notesdoku auf den Seiten von developerworks von ibm
 * 1. ob in der Umgebungsvariable der Path zum Notesverzeichnis gesetzt ist.
 * 2. Am NotesClient unter File/Security/UserSecurity gleich auf dem ersten Tab folgenden Checkbox setzen: Do not Prompt for Password...
 * 
 * Meine Testumgebung:
 * NotesClient 6.5.4a
 * VS2005
 * Notesdatenbank mit Template vom Adressbuch
 * 
 * Achtung: Mit SharpDeveloper 2.1b geht es nicht.
 */
using System;
using System.Collections.Generic;

//Lotus Domino
using Domino;


namespace NotesTest
{
    class MainClass
    {

        public static void Main(string[] args)
        {

            try
            {
                //Initialisiere die Notessession
                NotesSession session = new Domino.NotesSessionClass();

                //Passwort des Users, der als letztes am Client war. Der entsprechende Username wird aus der Notes.ini gezogen.
                //Die Ini liegt im Notespath
                //Es gibt hier noch andere Möglichkeiten, das würde hier aber eindeutig den Rahmen sprengen.
                session.Initialize("xxx");

                //Datenbank holen, die bearbeitet werden soll. In meinem Beispiel eine Adressendatenbank
                NotesDatabase db = session.GetDatabase("", "xxx.nsf", false);

                //Das View holen wo die Kontakte sind
                NotesView view = db.GetView("Contacts");

                //Das erste Dokument reicht uns und ich gehe davon aus das mindestens ein Kontakt vorhanden ist.
                NotesDocument doc = view.GetFirstDocument();
                
                //Beispiel ein Dokument auslesen
                //Feld LastName ausgeben, wir wissen das es ein String ist
                Console.WriteLine(String.Format( "Name:{0}, Vorname:{1}" ,
                                  doc.GetFirstItem("LastName").Text.ToString(),
                                  doc.GetFirstItem("FirstName").Text.ToString()));
                

                //Beispiel Feld ändern, merkt euch aber was vorher drin war!
                doc.ReplaceItemValue("LastName", DateTime.Now.Minute.ToString());
                doc.ReplaceItemValue("FirstName", DateTime.Now.Second.ToString());
                

                //Kontrollausgabe
                Console.WriteLine(String.Format("Name:{0}, Vorname:{1}",
                                  doc.GetFirstItem("LastName").Text.ToString(),
                                  doc.GetFirstItem("FirstName").Text.ToString()));

                //LastName und FirstName sind reale Felder die im Formdesigner erstellt wurden sind. So was wie Columns in SQL-DB's

                //die Änderung ist nun zu sehen, ABER noch nicht gespeichert !WICHTIG!
                //dazu muß noch folgende Funktion aufgerufen werden.

                doc.Save(true, false, false);
                
                //Tipp den nicht alle Notesgurus kennen: Im Document kannst du alles ablegen was dir beliebt.
                //Es ist während der Session da.
                //Muss das Dokument dann doch gespeichert werden, dann beseitigt man zuvor seine Spuren wieder mit Remove. 
//Man muss nicht unnötig Formfelder im Designer anlegen.
                //Notesdatenbanken sind garnicht so langsam wenn nicht für alles ein Feld angelegt wird die der Entwickler so braucht.
                
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadLine();
        }
    }
}

Und nun zu den Ausnahmen:

Ursprünglich wollte ich im Beispiel durch die Items eines Notesdokuments mit foreach laufen und diese ausgeben. Felder sind auch Items.
Mit Lotusscript, Java und VB geht das.
Mit C# wahrscheinlich auch, aber dazu sind meine Kenntnisse in C# noch zu gering.

Beispiel:


...initialisiere

NotesDocument doc  = ...;
foreach (NotesItem item in doc.Items)
 {
     doSomething();
 }

Wenn ich über doc.Items gehe zeigt der mir an "object IDocument.Items" und da meckert der Compilier. ?(

doc.Items gibt also ein object zurück. Gut, wenn ich das Object caste oder wie auch immer ich komme nicht an meine geliebten items.
Schrecklich nicht durch eine Schleife laufen zu können. 😭

Ein schönes Wochenende wünscht Euch
falangkinjau

03.11.2006 - 15:00 Uhr

Hallo,
ich lese jetzt erst zwei Wochen hier (leider nicht früher entdeckt), aber das ist schon die zweite Notesfrage.

Bei LDO kann ich zwar Daten wie Datenbankname etc. auslesen, aber komme nicht an die Felder ran smile

Du hast also schon ein Sessionobject, eine erfolgreiche Verbindung zur Notesdatenbank in C#.Ja? Rechte und Rollen zum lesen hast Du auch,Ja?
Die Notesdatenbank erlaubt den Zugriff über Com etc.,Ja?
Wenn ja, dann ist das sehr gut und du bist mit deiner Diplomarbeit fast fertig. 😁

Nun folgendes

  1. öffne Seite http://www-12.lotus.com/ldd/doc/domino_notes/6.5.1/help65_designer.nsf/Main?OpenFrameSet
  2. Öffne im linken Frame Link LotusScript/COM/OLE classes.
  3. Öffne nun im rechten Frame "COM"
  4. Nun kannst du oben links im rechten Frame auf Example gehen und dir das 8.Beispiel genau anschauen.

Kopieren, C#tauglich machen und fertig.
Für den Tiefgang mußt du dich aber mit der Objekthirachie beschäftigen.

Hier zur Vollständigkeit für den Mitleser einige Links die zur Noteswelt führen und immer Beachtung finden sollten:
DominoDesinger:
http://www-10.lotus.com/ldd/notesua.nsf/find/designer
Foren:
http://www-128.ibm.com/developerworks/lotus/community/
Toolkits:
http://www-128.ibm.com/developerworks/lotus/downloads/toolkits.html

Wenn es garnicht geht, dann Bescheid geben und ich werde mir mal nächste Woche den Notesbettel(Version 6) runterladen und es ausprobieren. Wollte ich eh mal wieder machen.

So, nun muß ich aber Schluss machen und mein DataGridView und andere Problem angehen und mich als blutiger C#Anfänger auch durch das Forum wühlen.

Ciao

01.11.2006 - 15:31 Uhr

Danke,
habe es gerade installiert und es läuft alles wie bisher ohne Probleme.
Kann nun unter #develop2.1 auch mal schnell kleine Geschichten für das 1.1 Framework erstellen.

Ciao

31.10.2006 - 10:08 Uhr

Hallo,
ich möchte das .NET Framework 1.1/SDK zusätzlich, also nachträglich, zu einer bestehenden .NET Framework 2.0/SDK und VS2005 Installation installieren.

Hat da irgend jemand Erfahrung, ob das reibungslos funktioniert?

Danke im voraus.
Ciao

27.10.2006 - 13:52 Uhr

Hallo,
folgende Quellen solltest du noch mal anschauen:

  1. http://www.redbooks.ibm.com/abstracts/sg245670.html?Open
    Kapitel 4. Dort wird zwar VB beschrieben, sollte theoretisch kein unterschied darstellen.
  2. Wenn du auf eine Notesdatenbank zugreifst, dann ist die ja irgendwo Notes installiert, Client oder Server.
    Wenn dort auch zufälligerweise der DominoDesigner mit installiert worden ist, dann findest du etliche Noteshilfedatenbanken unter anderem auch für die Entwicklung von Notesdatenbanken. Dort steht alles drin. Da mußt du mal euren Notesadmin fragen.

Die Notesdb kannst du aber nur mit einem Notesclient lesen. Zumindest ist das mein letzter Stand vor ca. 2Jahre. Seitdem habe ich damit auch nichts mehr gemacht.
Damals konnte man sich auch noch alles von ibm kostenlos runterladen. Ich meine den NotesClient/Desinger/Admin.

Folgendes solltest du noch beachten:

  1. Hast du entsprechende Rechte auf die Datenbank UND auf das Feld welches du auslesen möchtest.
  2. Was für ein Feld ist das? Beachte normales Textfeld ODER RICHTEXTfeld!

ciao

p.s. poste bitte mal, wenn und wie es mit c# funktioniert.