Laden...

Forenbeiträge von KANU Ingesamt 47 Beiträge

19.01.2008 - 22:59 Uhr

Hallo Leute,

danke viel mals, ich bin schwer begeistert von dieser Community!!!
Ein großes Lob an euch.

Hat mit der Session wunderbar funktioniert!!!

Gruß
Jennifer

18.01.2008 - 22:59 Uhr

Hi Leute,

jetzt hab ich mich so gefreut, dass ich gleich einmal ein Problem übersehen habe. Und zwar weise ich einer global definierten Variabel beim auswählen eines items in der DropDownList einen Wert zu (Index des Datensatzes in der DB). Doch sobald das AutoPostBack-Ereignis ausgelöst wird, ändert sich der Wert dieser globalen Variable wieder auf 0, da sie beim Anlegen mit 0 initialisiert wird. Das versteh ich jedoch nicht den wie gesagt sie wird global angelegt. Oder werden beim AutoPostBack auch die global angelegten Variablen auf den initialisierungswert zurückgesetzt??

Wenn ja, wie könnte ich das anders lösen??

Danke schon mal im voraus!

Gruß
Jennifer

18.01.2008 - 20:40 Uhr

Hallo Peter,

danke noch einmal für alles. Ich habe nicht verstanden warum nach dem SelectedItemChanged-Ereignis der Index immer wieder der selbe ist. Also habe ich mich nun mit den Ereignissen der Page beschäftigt und bin draufgekommen das, dass Page_Init Ereignis vor dem Page_Load Ereignis ausgelöst wird. Somit hats nicht funktionieren können da ich ja immer wieder die Items nach dem Bearbeiten in der DropDownList lösche und sie beim speichern in die Datenbank wieder neu in die DropDownList einlese. Dann habt ihr mich über IsPostBack aufgeklärt und nun habe ich einfach eine If-Abfrage gemacht die abfragt ob das Ereignis durch die AutoPostBack-Methode der DropDownList ausgelöst wurde, wenn ja dann sollen die Items nicht neu eingelesen werden. So hats nun endlich geklappt!!!!! 😁 😁

Danke, Danke, Danke noch einmal für alles. Hoffe ich kann euch auch einmal helfen 🙂.

P.S. Unsere Programmiernote wird aus einem Jahresprojekt zusammengestellt. Ich muss so ein Art "Kennzahlensystem" programmieren. Dies soll über eine WindowsAnwendung im internen Netzwerk laufen (schon fertig gestellt). Hauptbestandteil ist ein zentraler SQL-Server der diese DB verwaltet. Dieser ist mit einem Windows 2003 Server verbunden auf dem IIS für die Website konfiguriert ist. Die zweite Aufgabe war/ist eine Website zu programmieren, die die selben Funktionen bietet wie die WindowsApplication. Damit man z.B auch von einem anderen Standort aus das "Kennzahlensystem" nutzen kann. Dazu ist eine VPN - Verbindung in die Schule notwendig, damit ich eben auf die DB zugreifen kann.

Uns wird zwar C# beigebracht nur leider für die WindowsApplicationen und wie ich nun draufgekommen bin, funktioniert das alles in ASP.NET ein bisschen anders 😄.
Dabei ist es sehr interresant und ich finds ziemlich schade das wir das nicht beigebracht bekommen 😦.

Aber vl. könnt ihr mir gute Bücher aufzählen, die für mich als Anfänger für die ASP.NET-Entwicklung interessant sein können. Oder ein paar gute Tutorials wo einem wirklich von Anfang an alles bei gebracht wird!

Danke für alles!

Gruß
Jennifer

18.01.2008 - 13:33 Uhr

Hallo,

ich habe mich falsch ausgedrückt. Die Steuerelemente werden nur in der WindowsApplication dynamisch erstellt. In der WebAnwendung nicht.

Gruß Jennifer

18.01.2008 - 09:12 Uhr

Hallo Peter,

hast du es so gemeint??

protected void Page_Init(object sender, EventArgs e)
    {
        this.Label2.Visible = true;
        this.Label3.Visible = true;
        this.Label4.Visible = true;
        this.Label5.Visible = true;
        this.Label6.Visible = true;
        this.Label7.Visible = true;
        this.TextBox1.Visible = true;
        this.TextBox2.Visible = true;
        this.TextBox3.Visible = true;
        this.TextBox4.Visible = true;
        this.TextBox5.Visible = true;
        this.DropDownList2.Visible = true;
        this.Button1.Visible = true;
        string Benutzername = this.DropDownList1.Text;
        string[] spliti = new string[50];

        spliti = Benutzername.Split(' ');

        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            if (spliti[0] == ds.Tables[0].Rows[i]["Vorname"].ToString() && spliti[1] == ds.Tables[0].Rows[i]["Nachname"].ToString())
            {
                INDEXaendern = i;
                TextBox1.Text = ds.Tables[0].Rows[i]["Vorname"].ToString();
                TextBox2.Text = ds.Tables[0].Rows[i]["Nachname"].ToString();
                TextBox3.Text = ds.Tables[0].Rows[i]["Unternehmenpos"].ToString();
                TextBox4.Text = ds.Tables[0].Rows[i]["Abteilung"].ToString();
                DropDownList2.Text = ds.Tables[0].Rows[i]["Berechtigung"].ToString();
                TextBox5.Text = ds.Tables[0].Rows[i]["EMail"].ToString();

            }
        }
    }

genau dann kommt nämlich der Fehler, da dass DataSet noch mit keinen Tabellen gefüllt ist. Dieses wird erst im Page_Load gefüllt.

Wenn dus nicht so gemeint hast versteh ich nicht ganz was du meinst 🙁

Gruß
Jennifer

18.01.2008 - 00:04 Uhr

Hallo Peter,

ich hab das ganze jetzt sehr ausführlich probiert, bin jedoch zu keiner Lösung gekommen.

Ich habe es so versucht wie du es mir geschrieben hast. Ich habe das Page_Init Ereignis angelegt. Das Problem dabei ist jedoch das dieses Ereignis beim Page laden eintritt und somit kommt bei mir immer ein Fehler, da meine Datenbank noch nicht ins ds eingelesen wurde.

Dann habe ich es mit einem Button, Linkbutton versucht. Hat jedoch auch nicht geklappt.
Es wurde mir immer das erste Element in der DropDownlist angezeigt. Habe es auch versucht mit AutoPostBack = false, hat jedoch auch nicht geholfen.

Bin mittlerweile ratlos.

Ich poste mal an dieser Stelle meinen Code:

protected void Page_Load(object sender, EventArgs e)
    {
        
        try
        {
            DropDownList1.Items.Clear();
            string Benutzername = null, Berechtigung;
            Aktualisieren();
            this.Label2.Visible = false;
            this.Label3.Visible = false;
            this.Label4.Visible = false;
            this.Label5.Visible = false;
            this.Label6.Visible = false;
            this.Label7.Visible = false;
            this.TextBox1.Visible = false;
            this.TextBox2.Visible = false;
            this.TextBox3.Visible = false;
            this.TextBox4.Visible = false;
            this.TextBox5.Visible = false;
            this.DropDownList2.Visible = false;
            this.Button1.Visible = false;


            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                Benutzername = ds.Tables[0].Rows[i]["Vorname"].ToString() + " " + ds.Tables[0].Rows[i]["Nachname"].ToString();

                if (!this.DropDownList1.Items.Contains(new ListItem(Benutzername)))
                    DropDownList1.Items.Add(new ListItem(Benutzername));
            }

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                Berechtigung = ds.Tables[0].Rows[i]["Berechtigung"].ToString();

                if (!this.DropDownList2.Items.Contains(new ListItem(Berechtigung)))
                    DropDownList2.Items.Add(new ListItem(Berechtigung));
            }
        }
        catch
        {
            MessageboxAnzeigen("Es besteht keine Verbindung zur Datenbank!");
        }
    }
private void BENUTZERändern()
    {
        DataRow dr = ds.Tables[0].Rows[INDEXaendern];
        dr.BeginEdit();
        dr["Vorname"] = TextBox1.Text;
        dr["Nachname"] = TextBox2.Text;
        dr["Unternehmenpos"] = TextBox3.Text;
        dr["Abteilung"] = TextBox4.Text;
        dr["Berechtigung"] = DropDownList2.Text;
        dr["EMail"] = TextBox5.Text;
        dr.EndEdit();
    }
    protected void Button1_Click1(object sender, EventArgs e)
    {
        BENUTZERändern();
        Updaten();
    }
    private void MessageboxAnzeigen(string Inhalt)
    {
        string Script
        = "<script type=\"text/javascript\">alert('"
        + Inhalt
        + "')</script>";
        RegisterClientScriptBlock("WindowOpener", Script);
    }
    
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        this.Label2.Visible = true;
        this.Label3.Visible = true;
        this.Label4.Visible = true;
        this.Label5.Visible = true;
        this.Label6.Visible = true;
        this.Label7.Visible = true;
        this.TextBox1.Visible = true;
        this.TextBox2.Visible = true;
        this.TextBox3.Visible = true;
        this.TextBox4.Visible = true;
        this.TextBox5.Visible = true;
        this.DropDownList2.Visible = true;
        this.Button1.Visible = true;
        string Benutzername = this.DropDownList1.Text;
        string[] spliti = new string[50];

        spliti = Benutzername.Split(' ');

        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            if (spliti[0] == ds.Tables[0].Rows[i]["Vorname"].ToString() && spliti[1] == ds.Tables[0].Rows[i]["Nachname"].ToString())
            {
                INDEXaendern = i;
                TextBox1.Text = ds.Tables[0].Rows[i]["Vorname"].ToString();
                TextBox2.Text = ds.Tables[0].Rows[i]["Nachname"].ToString();
                TextBox3.Text = ds.Tables[0].Rows[i]["Unternehmenpos"].ToString();
                TextBox4.Text = ds.Tables[0].Rows[i]["Abteilung"].ToString();
                DropDownList2.Text = ds.Tables[0].Rows[i]["Berechtigung"].ToString();
                TextBox5.Text = ds.Tables[0].Rows[i]["EMail"].ToString();

            }
        }
    }

kannst du mir bitte sagen was ich hier falsch mache?? Ich finde nämlich keinen Fehler 🙁

EDIT: Hast du vl. ein Beispiel dazu, was du mir zu kommen lassen könntest?? Vielen, Vielen Dank!

Gruß
Jennifer

13.01.2008 - 12:49 Uhr

Hallo Peter,

Vielen Dank für die schnelle Antwort. Funktioniert super!

Vielen, vielen Dank!

Jetzt hab ich aber leider noch ein Problem und zwar wenn ich ein Element aus der DropDownList auswähle, dann ist das SelectedItem immer das erste Element in der Liste und ich weiß leider nicht wieso bzw. ich kann keinen Fehler in meinem Code erkennen.

EDIT: Es ist egal welches Element ich auswähle, sobald das SelectedIndexChanged Ereignis ausgelöst wird hüpft das ausgewählte Element wieder auf das erste Element in der DropDownList zurück 🙁

EDIT2: Bin gerade draufgekommen, dass wenn ich das erste Element in der Liste auswähle, das Ereignis SelectedIndexChanged nicht aufgerufen wird. Ich weiß zwar das sich der Index nicht geändert hat, jedoch hat das mit der Listbox unter einer Windows Anwendung immer so funktioniert 😠 .

Danke schon mal im voraus!

Gruß
Jennifer

12.01.2008 - 00:15 Uhr

Kann es vielleicht sein das die Seite dazu neu geladen werden muss ??

Gruß
Jennifer

12.01.2008 - 00:09 Uhr

Hi Leute,

ich habe mich nicht nur mit dem LoginControl beschäftigt sondern auch mit der DropDownList.

Ich habe folgendes Problem. Ich will auf das Ereignis SelectedIndexChanged von der DropDownList reagieren, nur irgendwie wird es mir nie ausgeführt.

protected void Page_Load(object sender, EventArgs e)
    {
        DropDownList1.Items.Clear();
        string Benutzername = null;
        Aktualisieren();
        this.Label2.Visible = false;
        this.Label3.Visible = false;
        this.Label4.Visible = false;
        this.Label5.Visible = false;
        this.Label6.Visible = false;
        this.Label7.Visible = false;
        this.TextBox1.Visible = false;
        this.TextBox2.Visible = false;
        this.TextBox3.Visible = false;
        this.TextBox4.Visible = false;
        this.TextBox5.Visible = false;
        this.DropDownList2.Visible = false;
        this.Button1.Visible = false;


        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            Benutzername = ds.Tables[0].Rows[i]["Vorname"].ToString() + " " + ds.Tables[0].Rows[i]["Nachname"].ToString();
           
            if (!this.DropDownList1.Items.Contains(new ListItem (Benutzername)))
                DropDownList1.Items.Add( new ListItem (Benutzername));
        }
    }

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.Label2.Visible = true;
        this.Label3.Visible = true;
        this.Label4.Visible = true;
        this.Label5.Visible = true;
        this.Label6.Visible = true;
        this.Label7.Visible = true;
        this.TextBox1.Visible = true;
        this.TextBox2.Visible = true;
        this.TextBox3.Visible = true;
        this.TextBox4.Visible = true;
        this.TextBox5.Visible = true;
        this.DropDownList2.Visible = true;
        this.Button1.Visible = true;
        string Benutzername = DropDownList1.SelectedItem.ToString();
        string[] spliti = new string[50];

        spliti = Benutzername.Split(' ');

        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            if (spliti[0] == ds.Tables[0].Rows[i]["Vorname"].ToString() && spliti[1] == ds.Tables[0].Rows[i]["Nachname"].ToString())
            {
                INDEXaendern = i;
                TextBox1.Text = ds.Tables[0].Rows[i]["Vorname"].ToString();
                TextBox2.Text = ds.Tables[0].Rows[i]["Nachname"].ToString();
                TextBox3.Text = ds.Tables[0].Rows[i]["Unternehmenpos"].ToString();
                TextBox4.Text = ds.Tables[0].Rows[i]["Abteilung"].ToString();
                DropDownList2.Text = ds.Tables[0].Rows[i]["Berechtigung"].ToString();
                TextBox5.Text = ds.Tables[0].Rows[i]["EMail"].ToString();

            }
        }
    }

Hab auch versucht ob VS mittels Breakpoint beim Ereignis stehen bleibt, war nur leider auch nicht der Fall.

Könnt ihr mir bitte sagen was ich falsch gemacht habe??

Gruß
Jennifer

11.01.2008 - 13:20 Uhr

Hi Leute,

ich hab mir das ganze jetzt angesehen versteh es aber leider nicht 😕. Das Problem was ich hab ist, dass es in meiner DB eine Spalte mit Vorname, Nachname und Passwort gibt.

Der Benutzername setzt sich aus Vorname.Nachname zusammen.

Wie kann ich nun meine Datenbank für den Login verwenden?? 👍

Irgendwie seh ich mich da nicht ganz durch 🙁

Gruß
Jennifer

11.01.2008 - 00:01 Uhr

Hallo Leute,

ein großes dankeschön schon mal an euch beide!!!!!!!! 👍

Ich werde mir das gleich mal Morgen in der Schule in Ruhe durchlesen.

Was mich nur interessieren würde, Peter wie bist du auf den Suchbegriff Membership gekommen 😦. Ärgert mich nämlich jetzt ein bisschen, hab die letzten zwei Wochen nichts gemacht als eine Lösung auf meine Antwort zu finden und mir ist der Suchbegriff Membership nicht in den Sinn gekommen:(.

Gruß
Jennifer

10.01.2008 - 23:33 Uhr

Hallo zusammen,

ich habe vor längerer Zeit einmal die Frage gestellt ob es sinnvoll ist mir meinen eigenen Login für eine ASP.NET Seite zu programmieren. Dabei kam raus das es viel gescheiter ist das vorhandene Login Control zu verwenden, da die Sicherheit viel höher ist. Jetzt beschäftige ich mich schon seit längerer Zeit mit diesem Steuerelement und finde keine passende Antwort auf meine Frage.

Wir haben von unserem Leher ein Projekt aufbekommen das Kennzahlen verwalten soll (Pflege & Verwaltung von Kennzahlen, Statistiken, Grafiken, Simulationen, und und und 😄). Diese Projekt soll aus einer Windows Anwendung bestehen und aus einer Website (Stichwort --> Teleworking), beides sollen aber die selben Funktionen bieten. Mit meiner Windows Anwendung bin ich nun schon seit längerem fertig. Nur steck ich jetzt bei der Website fest.

Ich habe eine DB aufgebaut die Benutzer mit 3 verschiedenen Rechten beinhaltet. So nun soll bei meiner Website genau die selbe DB verwendet werden. (Fürs LoginControl)

Angefangen habe ich mit einer Masterpage, um das Design auf jeder Seite gleichzuhalten. Jetzt zum Schluss hab ich mir ein Login Control auf meiner Login.aspx erstellt. Ich hab die letzten zwei Wochen das Internet für passende Lösungen durchforstet. Nur leider find ich immer die selben Beispiele, ein LoginControl mit fix verankerten Benutzern und deren Passwörter. Ich suche aber eine Lösung wo ich meine Eigene DB verwenden kann, damit die User in der WA und auf der WS gleich sind.

Ich hoffe ich habe mein Problem verständlich geschildert 😄, wenn nicht bitte einfach hinterfragen. Kennt jemand vl. ein gutes Tutorial für mein Problem?? Bin für alle Ratschläge und Tipps, dankbar!

Bitte helft mir. ?(

Gruß
Jennifer

05.12.2007 - 10:20 Uhr

Wenn du die for schleife in einer anderen Funktion ausführst, und in der textBox1_textchanged i in einen String umwandelst kanns nicht funktionieren da er i nicht kennt.

EDIT: Probiers mal mit einer global angelegten Variable!

03.12.2007 - 17:54 Uhr

Hi BlauBär,

probiers mal mit der Convert.To Klasse.

Gruß
Jennifer

29.11.2007 - 14:44 Uhr

Hi,

danke noch mals an dich marco!

Du hast schon vollkommen recht! Klarerweise ist Option 1 besser und so werde ich das nun auch realisieren.

Und falsch verstanden habe ich dich sowieso nicht da ich mir ja andere Meinungen dazu einholen wollte 🙂

Vielen dank noch mals für eure Hilfe!

Gruß
Jennifer

29.11.2007 - 10:47 Uhr

Hi,

ok nach dem du sicher mehr Erfahrung in ASP hast als ich werde ich mir mal ein paar Authentification-Konzepte anschauen.

Nur hätt ich noch eine Frage und zwar: auf welche Probleme würde ich in der "Real-World" stoßen, wenn ich mein Konzept jetzt so druchsetzen würde??

Danke für eure Hilfe!

Gruß
Jennifer

28.11.2007 - 22:14 Uhr

Hi,

also das mit den Sessions werde ich mir noch genauer anschauen!
Danke für diesen Tipp!

Ich habe einstweilen versucht dies mittels DB zu lösen.
Mein Problem hierbei ist folgendes:

Ich in meiner DB standarmäßig den Wert 0 drinnen stehen.
Versucht nun jemand eine andere Seite zu öffnen frag ich den wert in der DB ab.

Ist er 0 darf er sie nicht öffnen.

Beim einloggen bekommt jede USER Authentifikation einen eigenen wert!

Administrator = 1
Schreibrechte = 2
Leserechte = 3

so das funktioniert auch.

Nur wenn ich nun die Seite schließe bleibt mir der Wert des zuletzt eingeloggten Users in der DB stehen. Somit kann jemand wenn er die Page das nächstemal öffnet auf jede Seite zugreifen die, die Berechtigung des zuletzt eingeloggten Users unterstützt!

Deswegen war auch meine Frage wie ich das Close event abfragen kann damit ich den Wert in der DB wieder auf 0 setzen kann. Mit einem logout button ist einfach. Jedoch benutzt klarerweise nicht jeder den Logout Button. Manche schließen den Browser auch einfach so und dann ist das natürlich auch wieder hinfällig!

Gibt es hierzu eine Möglichkeit den Wert beim schließen wieder auf 0 zu setzten??

Gruß
Jennifer

28.11.2007 - 22:05 Uhr

Hi,

ich habe mich heute auch mit diesem Thema beschäftigt!

Ich habe meine neue Web Form wie folgt aufgerufen:

Server.Transfer("Seite.aspx");

Gruß
Jennifer

28.11.2007 - 19:22 Uhr

Das ist mir schon klar das mir in ASP einige Grundlagen fehlen. Ich programmiere auch normalerweise keine Websites sondern nur Standalone Programme. Könntet ihr mir evtl. vielleicht doch helfen??

28.11.2007 - 18:36 Uhr

Hi Leute,

Mit Webformen meite ich die Web Form. Wie bei der Windwos Anwendung die Windows Form. Nur finde ich einfach keinen Weg diese Formen unter ASP anzusprechen.

In der Windwos Anwendung ja:

Form2 f2 = new Form2(this);
f2.Show();

Um die Variablen der Form1 in der Form2 anzusprechen.
Meine Frage war nun wie ich dies in ASP.NET ausprogrammiere.

Ich will mir eine Variable anlegen die beim Laden der Page auf 0 ist. Wenn die Variable auf 0 ist soll jede Seite die jemand in der Browseradressleiste eintippt, nicht aufrufbar sein. Ich arbeite mit einem selbstprogrammierten Login. Ich verwende 4 Web Formen für jede Userberechtigung eine andere. Wenn jemand also im moment eine andere Seite im Browser eingibt (wenn er nicht einloggt ist) kann er den Login einfach umgehen! Dies soll natürlich nicht gehen!

Ich habe mir jetzt also eine Klasse angelegt die so aussieht:

public class StaticObject
{
        private int ber;
        public StaticObject(int i)
        {
             ber = i;
        }
        
        public StaticObject()
        {
             ber = 0;
        }

        public int Ber
        {
             get
             {
                   return ber;
             }
             set
             {
                   ber = value;
             }
         }
}

Also einfach ein Property.

So hab ich eine Variable die ich z.B.: in der ersten Form angelgt habe in jeder anderen Form auch.

Das ist auch mein hintergedanke in ASP.NET nur funktioniert das nicht weil ich die Web Formen nicht ansprechen kann.
Normalerweise sag ich dann:

Form1.SO.Ber = 20;

nur dies geht in asp irgendwie nicht.

In google hab ich leider nichts dazu gefunden auch nicht wenn ich ASP C# eingebe!

P.S.:

Hi,

und ich meinte das Session End event smile Vielleicht kann er ja damit was anfangen.

lg

Ich bin eine SIE 😁

Gruß Jennifer

28.11.2007 - 12:37 Uhr

Hi Leute!
Ich hab ein paar Fragen und hoffe, ihr könnt mir da weiterhelfen.

  1. Ich möchte das "Exit" Ereignis oder "Close" abfangen. Also wenn die Seite geschlossen wird, noch eine Funktion aufrufen. Nur welche Ereignisse hat meine Page überhaupt und welches Ereignis gibt es da wenn ich die Seite schließe.

  2. Wie kann ich in ASP die unterschiedlichen Webformen ansprechen?

  3. Ich programmiere in C# und wollte wissen ob es irgendwelche nützlichen Tutorials im Inet gibt. Meine google Versuche waren bis jetzt alle nutzlos!!!

Ich weis es sind zwar jetzt drei Fragen ich hoff das stört nicht da sie kurz gehalten sind!

Gruß
Jennifer

21.11.2007 - 09:13 Uhr

Hi M@TUK,

ich haba dies schon ausprobiert, hatte jedoch nur Probleme. Du solltest dir vl. auf VMware oder Virtual PC noch eine Maschine einrichten und darauf die VS 2008 EE installieren. Ist sicherlicht besser!

Gruß
Jennifer

20.11.2007 - 12:59 Uhr

Hi Leute,

ich habe zwei Probleme. Ich weiß zwar das ich nur eines pro Thema ansprechen soll aber ich will mir hier nur kurze Infos darüber einholen wie ich die folgenden Funktionen realisieren kann.

Ich würde gerne für mein Programm eine Rescue & Recovery Funktion einbauen (meine Datenbank liegt auf einem SQL - Server und ich möchte diese mit einer Funktion in meinem Programm sichern, bzw. wiederherstellen)

Könnt ihr mir Bitte Tipps dazu geben???

Meine zweite Frage handelt über das Thema: Eine Access DB über mein Programm auf den SQL Server zu laden.

Wie könnte ich das Lösen???

Bin für jede Antwort offen und FROH!!! 😁

Danke schon mal im Voraus!!!

Gruß
Jennifer

11.11.2007 - 19:46 Uhr

Juhu endlich!
Hoffe unsere Schule kriegst auch gleich Ende November 🙂

10.11.2007 - 16:14 Uhr

Hi Leute,

ich habs nun geschafft einen Bericht zu drucken. Hab von unserem Lehrer nun endlich die MSDN Dokumentation bekommens und habs dadruch geschafft.

Ich hab nicht gewusst das man ein DataSet hinzufügen muss, damit das dann in den Verbindungen vom CrystalReport angezeigt werden kann. Wenn ich ein DataSet zur laufzeit erstelle und mit meiner DB initialisiere funktioniert das irgendwie nicht.

Mit freudlichen Grüßen
Jennifer

08.11.2007 - 17:43 Uhr

Hi,

gut einen Bericht habe ich noch nie erstellt. Wie geh ich an die Sache heran. Ich habe den Bericht zur Projektmappe hinzugefügt. Nun fragt VS mich wie ich ihn erstellen möchte.

Erstell ich ihn mit dem Assistenten dann find ich mein DataSet in der Dataquelle nicht.

Kann mir irgendwer erklären wie ich an die Sache heran gehe.

Tut mir leid wenn ich jetzt vielleicht so viele Fragen stelle, aber ich find dazu nichts gescheites im Internet.

Gruß
Jennifer

08.11.2007 - 16:47 Uhr

Hi Leute,

so irgendwie glaube ich das ich da was falsch verstanden habe.

ich hab mir die Variable nun angelegt.

ReportDocument rpt = new ReportDocument();

jetzt kommt in der schleife bei

rpt.Database.Tables

der Fehler "Ungültiger Pfad für Berichtsdatei".

Jetzt stellt sich mir die Frage.

Muss ich eine solche Berichtsdatei erstellen. Wenn Ja wie mach ich das.

Gruß
Jennifer

08.11.2007 - 15:00 Uhr

Hi Leute,

ich bins gleich nochmal.

Habs doch gleich probiert jedoch bekomm ich jetzt eine Fehlermeldung und zwar sagt er mir rpt ist im aktuellen Kontext nicht vorhanden.

Klar ist mir das es eine variable sein muss, jedoch nicht welche. Hab mich bei dem code den du mir geschrieben hast nicht wirklich ausgekannt.

foreach (CrystalDecisions.CrystalReports.Engine.Table table in rpt.Database.Tables)
            {
                if (ds.Tables.Count > 1)
                    table.SetDataSource(ds.Tables[0]);
                else
                    table.SetDataSource(ds.Tables[0]);
            }

kann mir bitte wer helfen??

P.S: Vielleicht hilft euch der Programmcode weiter.

Hab zwei Steuerelemente auf meiner Form: DataGridView und ein CrystalReportViewer weiters hab ich in meiner Projektmappe nichts weiters als die Form und den code.


namespace DruckenTest
{
    public partial class Form1 : Form
    {
        const string CONNECTION = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=KANU.mdb; User ID=; Password=;";
        private DataSet ds = new DataSet();
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //_dtPVG = ds.Tables["Benutzerliste"];
            Aktualisieren();
            dataGridView1.DataSource = ds.Tables[0]; // Hier füll ich einfach nur ein Datagrid um mir die Tabelle anzeigen zu lassen
            //reportDocument1.SetDataSource(_dtPVG);
            //reportDocument1.SetParameterValue(0,"Drucker - Test");

            foreach (CrystalDecisions.CrystalReports.Engine.Table table in rpt.Database.Tables) //Diesen Teil hab ich einfach nur kopiert und auf mein Programm zugeschnitten
            {
                if (ds.Tables.Count > 1)
                    table.SetDataSource(ds.Tables[0]);
                else
                    table.SetDataSource(ds.Tables[0]);
            }
        }

        private void Aktualisieren()
        {
            string Benutzerliste = "SELECT * FROM Benutzer";

            OleDbConnection conn = new OleDbConnection(CONNECTION);
            conn.Open();

            OleDbDataAdapter adapter = new OleDbDataAdapter(Benutzerliste, conn);
            adapter.Fill(ds, "Benutzerliste");
            adapter.Dispose();

            string Kennzahlen = "SELECT * FROM Kennzahlen";

            OleDbDataAdapter adapter1 = new OleDbDataAdapter(Kennzahlen, conn);
            adapter1.Fill(ds, "Kennzahlenliste");
            adapter1.Dispose();

            string DecodEncode = "SELECT * FROM DecodEncode";

            OleDbDataAdapter adapter2 = new OleDbDataAdapter(DecodEncode, conn);
            adapter2.Fill(ds, "DecodEncode");
            adapter2.Dispose();
            conn.Close();
        }

        private void Updaten()
        {
            string select = "SELECT * FROM Benutzer";
            string selectken = "SELECT * FROM Kennzahlen";
            string decodencode = "SELECT * FROM DecodEncode";
            OleDbConnection conn = new OleDbConnection(CONNECTION);
            conn.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter(select, conn);
            OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
            //OleDbCommand xx = builder.GetInsertCommand();
            //OleDbParameterCollection yy = xx.Parameters;
            adapter.Update(ds, "Benutzerliste");
            adapter.Dispose();
            OleDbDataAdapter adapter1 = new OleDbDataAdapter(selectken, conn);
            OleDbCommandBuilder builder1 = new OleDbCommandBuilder(adapter1);
            //OleDbCommand xx1 = builder.GetInsertCommand();
            //OleDbParameterCollection yy1 = xx1.Parameters;
            adapter1.Update(ds, "Kennzahlenliste");
            adapter1.Dispose();
            OleDbDataAdapter adapter2 = new OleDbDataAdapter(decodencode, conn);
            OleDbCommandBuilder builder2 = new OleDbCommandBuilder(adapter2);
            adapter2.Update(ds, "DecodEncode");
            adapter2.Dispose();
            conn.Close();
        }
    }
}

Kann mir wer sagen warums nicht funktioniert??

Vielen Dank.

mit freundlichen Grüßen
Jennifer

08.11.2007 - 14:43 Uhr

Hi Leute,

mit einer externen Datei zu arbeiten ist in meinem Fall nicht sinnvoll, da die Daten die in der DB stehen beim drucken nicht veränderbar sein dürfen. Wenn ich also die Daten in eine Datei spiele, kann der Benutzer sie ja vor dem drucken noch ändern.

Aber nach dem ich mit einer DB arbeite benutz ich sowieso ein DataSet. Also werde ich heute am Abend mit dem Beitrag von BerndFfm versuchen den Crystalreport zu füllen.

Vielen dank!

Wenn es nicht funktioniert schreib ich noch =)

mit freundlichen Grüßen
Jennifer

07.11.2007 - 23:39 Uhr

Hi Leute,

dankeschön für die schnellen Antworten!

Sorry ich glaube ich hab mich wieder mal falsch ausgedrückt 😁

mir war der weg mit dem printDocument zu umständlich und zu zeitaufwändig. Mit crystalreport und reportviewer hab ichs probiert bin aber leider zu keinem Ergebnis gekommen da ich die zwei Steuerelemente nie mit Daten füllen konnte.

Mit xml und html kenn ich mich nicht wirklich aus. Die Grundbefehle und Sachen von html weis ich, aber ich hab jetzt nicht wirklich verstanden wie ich das mit html im bezug aufs drucken lösen kann.

Lieber wäre mir jedoch crystalreport oder reportviewer. Leider konnte ich bis jetzt noch immer nichts brauchebares finden. Ich versteh einfach nicht wie ich die Daten in die zwei Steuerelemente bring...... 🤔

P.S: Kosten sollte es nichts, da es was für die Schule ist und ich nicht wirklich ein haufen Geld dafür ausgeben will.

mit freundlichen Grüßen
Jennifer

07.11.2007 - 16:14 Uhr

Hi Leute,

ich bins gleich nocheinmal 🙂

Da ich mich im Vorfeld schon mit dem Thema drucken beschäftigt habe, muss ich sagen das ich auf keine Lösung gekommen bin.

Ich bin bei der Forumssuche mehrmals auf die Seite www.gotreportviewer.com gestossen. Jedoch ist diese Seite irgendwie down.

Mein Problem ist jedoch folgendes: Ich verfüge über eine Datenbank mit einer Tabele Benutzer (Enthaltet: Vorname, Nachname, Passwort, Email, BenutzerID, Abteilung und Schule). Diese Tabelle habe ich in ein Dataset in meinem Programm eingelesen und das funktioniert wunderbar.

Nun möchte ich diese Daten die ich oben genannt habe wie Vorname, Nachname, etc. ausdrucken lassen. Ich habs mit Crystal Reports, printdocument und ReportViewer probiert.

Fazit: printdocument war mir zu aufwendig (alles selbst zeichnen) und ich wusste nicht wie ich die Daten aus meinem DataSet aufs Papier bringe.

Beim Crystal Report und beim ReportViewer ist es ja so das die Funktionen wie Seite einrichten, Drucker auswählen, etc. schon existieren. Da war mein Problem jedoch wie ich die Daten aus meinem DataSet in die Steuerelemente bringe.

Ich will einfach nur die Daten aus meinem ds entweder in den CR oder in den RV bringen.

Im Forum und bei Codeproject hab ich auch nichts wirklich brauchbares gefunden.

Bitte helft mir.

Danke!

mit freundlichen Grüßen
Jennifer

07.11.2007 - 09:13 Uhr

WCF muss ich mir erst aneignen 🙂

Aber trotzdem danke für den Tipp!

mit freundlichen Grüßen

Jennifer

06.11.2007 - 20:29 Uhr

Hi Leute,

erstmal ein großes Dankeschön und Lob für die schnellen Antworten!!! 👍

An herbivore, tut mir leid ich glaube ich habe mich falsch ausgedrückt 🙁
Ich habe nämlich eine Methode gesucht um die Datei von überall aus in der Schule zugänglich zu machen (jeder Workstation).
Aber trotzdem ein großes Dankeschön für deinen Post.

Das mit der Datenbank-Methode ist glaube ich das gescheiterste. Mich ärgerts nur das ich nicht selbst darauf gekommen bin 😁 Jetzt arbeite ich die ganze Zeit mit Datenbanken und bin nicht auf die Lösung gekommen 😜 Ich hätte mich nicht so auf textfiles fixieren sollen 😁

Danke schön für diesen Denkanstoß!

Danke nocheinmal für eure Antworten!

mit freundlichen Grüßen
Jennifer

06.11.2007 - 19:11 Uhr

Hi Leute,

also wir haben von unserem Lehrer aufbekommen, ein Programm zu schreiben wo sich Personen mit unterschiedlichen Rechten einloggen können (Administrator, Benutzer mit schreibrechte, Benutzer mit leserechte). Soweit so gut. Das soll noch nicht das Problem gewesen sein. Das nächste ist, dass es eine Logdatei geben soll. Die aufzeichnet wer sich eingeloggt hat, Datum, und ob er was verändert hat oder nicht. Das war auch noch kein Problem. Angenommen jeder Benutzer hat einen PC und loggt sich ein.

Problem: Wie kann ich nun die Textdatei so ablegen das diese jedesmal aufgerufen wird wenn sich jemand einloggt und die oben genannten Informationen darin abspeichert.

Mein Lösungsansatz: Einen Server benutzen worauf ich diese Textdatei ablegen kann.
Mir steht ein Microsoft SQL - Server 2005 und ein Windows Server 2003 zur verfügung.

Jedoch hab ich keine Ahnung wie ich das angehe.

Ich wäre über jede Lösung dankbar oder vielleicht habt ihr ja andere Lösungsansätze.

Danke viel mals!!

mit freundlichen Grüßen

Jennifer

06.11.2007 - 18:06 Uhr

Hat gefunzt!! 🙂

Danke viel mals

06.11.2007 - 11:14 Uhr

Und wie kann ich das wieder rückgängig machen??

mit freundlichen Grüßen

Aigner Patrick

03.11.2007 - 22:03 Uhr

Irgendwie weiß ich nicht was du meinst 😁

Was meinst du mit lokalisiert??

Ich hab nämlich rein gar nichts geändert, außer das ich einen Helpprovider hinzugefügt habe.

mfg Jennifer

03.11.2007 - 01:50 Uhr

Hi Leute,

ich bins wieder einmal 🙂

Ich programmiere Seit längerem an einem Projekt wo ich mit der dynamischen Erstellung von Steuerelementen arbeite.

Bis vor kurzem ging auch noch alles wunderbar, doch seit neuerstem schreibt mir der Designer anstatt der gewöhnlichen Befehle wie z.B. jetzt anhand einer TextBox:


this.textbox.Location = new System.Drawing.Point(37, 214);
this.textbox.Name = "textbox";
this.textbox.Size = new System.Drawing.Size(129, 20);
this.textbox.TabIndex = 16;

nur noch diesen Code:

 
resources.ApplyResources(this.textBox6, "textBox6");
this.textBox6.Name = "textBox6";

mir gehen die Befehle wie location, size, etc. ab.

Kann mir einer die Lösung zu meinem Problem verraten???

Mit freundlichen Grüßen
Jennifer

19.10.2007 - 20:06 Uhr

He danke schön!!!!

Jetzt funktionierts super

mfg

Jennifer

18.10.2007 - 22:01 Uhr

kann ich sie auch per button click aufrufen ??

mfg

17.10.2007 - 22:42 Uhr

Help Workshop kenn ich hab ich mir auch schon gezogen. Das Problem dabei war das dieses Tool von Microsoft ziemlich verwirrent ist und es nicht wirklich verwendbare Docs im Inet dazu gibt.

Unser Lehrer hat uns daraufhin auf das Programm doc-to-help (DocToHelp) aufmerksam gemacht!

Ich schreib meine Dokumentation so wie ich sie haben will in ein .doc und wandle das ganze mit diesem Programm dann einfach um.

Einzig brauchbare Doku zu Workshop war ASP Heute und da wird das so grob erklärt das sichs im Endeffekt eh nichts gebracht hat 🙂

Und meine Frage war eigentlich wie ich die chm Datei mit einem Click Event aufrufen kann??

Das hab ich nicht ganz verstanden.

mfg Jennifer

17.10.2007 - 12:34 Uhr

Hi Leute,

ich hab mich die letzte Woche zum ersten mal mit dem Helpprovider beschäftigt.
chm datein erstellen war für mich unmöglich, da ich mich da am wenigsten ausgekannt hab. html datei war kein Problem zu erstellen jedoch hab ich ein Problem.

Forum hab ich durchsucht und dazu nichts gefunden.

Ich hab dem HelpproviderNamespace den link zur html datei übergeben.

So nun würd ich gern wissen wie ich auf das Click Ereignis vom inhaltToolStripMenuItem (Menustrip tool) reagieren kann, so das er mir die Hilfehtml datei aufruft.

Es gibt irgendwie kein Show Befehl oder der geleichen!

mfg Jennifer

18.09.2007 - 13:04 Uhr

Hi Leute,

ich hab schon wieder einmal ein rießen großes Problem. Wenn jemand vl. schon Erfahrungen mit Blend gemacht hat, kann er mir ja evtl. helfen.

Mein Problem ist folgendes:

Ich habe in Blend eine Form erstellt habe den Formborderstyle wiedereinmal ausgeblendet 😄. Wenn ich jetzt z.B.: einen Button in der Form von Blend erstelle dann muss ich beim Eigenschaftsfenster in Blend auf das Ereignis click reagieren. Also klick ich zwei mal auf das Ereignis so wie in VS 2005. Dann öffnet sich auch das vs 2005. Nur habe ich nicht wie gewohnt eine normale Form sonder steht alles in der XAML datei (grafische Eigenschaften z.B.: Buttons, Form Oberfläche usw.) Ich muss also immer in Blend auf die Eigenschaften klicken um es in VS zu programmieren. Jedoch sind die Befehle ganz anderst. Zum Beispiel gibt es kein MouseEventargs e bei den ganzen Mous bewegungen. Somit kann man die X und Y koordinaten nicht bestimmen. Oder wenn ich das Programm schließen will muss ich den Namen der Windows Form in Blend nehmen und dann .Exit(); sagen anstatt wie gewohnt Application.Exit();

Kann man da irgendetwas machen, weil sonst müsste man sich extra für MS Blend eine eigene PRsprache anlernen. Kann man da irgendetwas umstellen damit ich ganz normal Programmieren kann so wie ich es gewohnt war????????

Liebe Grüße Jennifer

18.09.2007 - 12:43 Uhr

Du könntest das auch alles mit einer DB realisieren.

Einfach Benutzernamen und Passwort anlegen (in Access natürlich passwort mit * anzeigen lassen) und im Programm dann überprüfen ob der eingebenene BN mit dem vorhandenen PW in der DB übereinstimmt. Da könntest du auch eine dritte Tabelle mit Benutzerrechten anlegen und somit im Programm definieren was der Benutzer alles darf.

Liebe Grüße Jennifer

14.09.2007 - 18:40 Uhr

Danke vielmals Leute,

es war sehr hilfreich für mich und hat auch super hingehaun!!! Wirklich einen großen DANK und ein kräftiges Lob an euch.

Das einzige was ich nicht wirklich verstanden hab war das mit dem Cursor. Da hab ich nicht ganz durchgeblickt.

Liebe Grüße Jennifer

14.09.2007 - 10:42 Uhr

Hi Leute,

ich habe ein neues Projekt mit einer neuen Form angelegt. Dieser Form hab ich ein Background Image gegeben und dazu hab ich gesagt das ich als Hintergrundfarbe dieser Form rot haben möchte. So dann hab ich den Transparency Key auf rot gestellt um nur noch das Hintergrundbild anzuzeigen damit ich ein anderes Design habe. Weiters habe ich die Eigenschaft "FormBorderStyle" auf none gestellt um kein minimieren, schließen und maximieren habe. Das einfach wirklich nur mein bild angezeigt wird. Dieses Bild ist nun Vorlage für mein neues Design.

Als nächstes hab ich mir zwei Pictureboxen angelegt um die symbole Schließen und Minimieren mit meinen eigenen grafiken anzeigen zu lassen. Diesen Pictureboxen sag ich beim anklicken das sie das Fenster entweder minimieren oder schließen sollen. Das Funktioniert einwandfrei.

So das nächste Problem war das ich nach dem ich den Boarderstyle ausgeblendet habe, mir das verschieben meines eigenen Designes selber ausprogrammieren habe. Dies funktioniert auch einwandfrei.

Nur ein Problem hab ich und zwar wie programmier ich nun das "Fenster vergrößern" aus. Das heißt wenn ich einen Rand anklicke und ziehe das er mir das Fenster größer macht?????

Bitte helft mir ich, schon langsam bin ich am verzweifeln!

mit freundlichen grüßen Jennifer