Laden...
B
Blue_Dragon myCSharp.de - Member
Softwareentwickler Österreich Dabei seit 04.10.2005 198 Beiträge
Benutzerbeschreibung

Forenbeiträge von Blue_Dragon Ingesamt 198 Beiträge

09.02.2006 - 23:51 Uhr

Hallo Leute!

Ich hätt ne Frage und zwar, wie kann ich einen Teil einer Form weiß einzeichnen und dann trotzdem mit GDI was draufmalen?

Also die Form soll im allgemeinen normal grau sein, dann soll aber ein weißes Kästchen drinnen sein, in das ich zeichnen möchte....

Wie kann ich ich die Form so teilweise einfärben?

lg

Dragon

02.02.2006 - 10:36 Uhr

Ja mit SQL kenn ich mich ja eh aus und mit dem aufbau von realtionalen Datenbanken, aber leider nur in der Theorie...

Wenns ums praktische Umsetzen geht hab ich noch probleme weil ichs noch nicht oft genug gemacht hab...

Naja es wird schon werden 🙂

danke

31.01.2006 - 10:40 Uhr

Also erst mal danke für die Antwort!

Ich selbst bevorzuge auch Datenbanken bei meiner Arbeit, allerdings muss ich mich noch intensiver damit befassen da ich noch nicht sehr viel praktische Erfahrung bei der Erstellung von DB's mit den Normalformen habe, da tue ich mir noch etwas schwer.

Naja ich werde mal im Internet nach den Normalformen suchen.

Wenn ihr die Zeit habt könntet ihr mir noch erklären warum genau man Daten nicht mehr in Datein sichern sollte sondern in DB's.

30.01.2006 - 21:15 Uhr

Hi Leute!

Also ich habe vor einen Vokabeltrainer zu programmieren...

Ich bin mir allerdings noch etwas unschlüssig über die Sicherung meiner Daten.

Bei einem Vokabeltrainer kann ich wohl von 10.000 Datensätzen standart ausgehen...
Ich möchte die Daten aber eigentlich nur absichern um sie bei jedem Start des Programms in Objektinsantzen zu bringen.

Was würdet ihr mir für diese Art von Datensicherung empfehlen? Eine DB wo der Speicherverbrauch denke ich nicht so hoch ist wie bei einer Datei oder doch eine Datei???

Von den Datenbanken her will ich keinen SQL Server oder sonstige installieraufwändige System benutzen, wenn dann würde ich das gerne über eine Access DB lösen.

So, was findet ihr ist im Verhältnis Aufgabenstellung zu Geschwindigkeit/Speicherplatzverbrauch überlegenswert und was würdet ihr an meiner Stelle verwenden?

lg
Dragon

26.01.2006 - 17:25 Uhr

@herbivore

Danke ich hab es bereits mit Methoden gelöst 🙂

Danke für die Hilfe

26.01.2006 - 16:27 Uhr

Hi Leute!

Also ich habe folgendes Problem.

Ich hab eine ConsoleApp geschrieben inder ich eine Generische LinkedList initialisiere, diese ist static.

Wenn ich jetzt aus einer Methode der zweiten Klasse diese Liste angsprechen will, bekomm ich eine Fehlermeldung die mir sagt das die Liste nicht ansprechbar ist.

Weiß jemand von euch wie man ein Generisches Element öffentlich zugreifbar macht?

18.12.2005 - 13:44 Uhr

Das hab ich mir auch schon überlegt das ich das ClientArray in die Engine Klasse schreibe, aber ich wusste nicht wie ich das mache das die VHCServ Klasse dann auch noch darauf zugriff hat....

18.12.2005 - 12:38 Uhr

und wie sieht die technische realisierung aus?

18.12.2005 - 12:16 Uhr

Hm, okay ich denke ich hab verstanden was du meinst... Aber was kann ich dann dagegen tun?

lg

18.12.2005 - 12:06 Uhr

Hm, ich hab mir das auch schon gedacht aber den gedanken wieder verworfen, da das broadcasten mit normalen text ja ohne probleme funktioniert...

Ich kann dir auch einfach mal meine Solution als zip per mail schicken wenn du es dir mal ganz ansehen willst...

18.12.2005 - 11:22 Uhr

Also, das ist meine Hauptklasse:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.IO;
using System.Threading;

namespace Virtual_Hell_Chat_Server
{
    public partial class VHCServ : Form
    {
        public VHCServ()
        {
            InitializeComponent();
        }

        #region "Variablen"

        static Engine[] ClientArray = new Engine[100];
        private delegate void uidelegate();
        private delegate void uidelegatei(int i);
        private Thread wait;
        TcpListener Listener;
        public static int clientanz;

        #endregion

        #region "Start/Stop Server"

        private void StartServer_Click(object sender, EventArgs e)
        {
            try
            {
                clientanz = 0;
                txtport.ReadOnly = true;
                txtStatus.Text = DateTime.Now.ToLongTimeString().ToString() + " Server gestartet..." + Environment.NewLine;
                wait = new Thread(new ThreadStart(waitforclient));
                wait.IsBackground = true;
                wait.Start();
                checker.Start();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
            }
        }

        private void StopServer_Click(object sender, EventArgs e)
        {
            try
            {
                wait.Abort();
                Listener.Stop();
                txtStatus.Text = "";
                checker.Stop();
                txtClientAnzahl.Text = "0";
                clientanz = 0;
                foreach (Engine eng in ClientArray)
                {

                    if (eng != null)
                    {
                        eng.disconnect();
                    }

                }
            }
            catch (Exception error)
            {
                MessageBox.Show(error.Message.ToString());
            }
        }

        #endregion

        #region "Methoden"

        public static void broadcast(byte[] message)
        {
            foreach (Engine e in ClientArray)
            {
                if (e != null)
                {
                    try
                    {
                        e.stream.Write(message, 0, message.Length);
                    }
                    catch
                    {
                    }
                }
            }
        }

        public static void make_userlist()
        {
            string ul = "/ul";
            byte[] sendbytes;
            foreach(Engine e in ClientArray)
            {
                if(e != null)
                {
                    ul += " " + e.Clientname;
                }
            }
            sendbytes = Encoding.ASCII.GetBytes(ul);
            broadcast(sendbytes);
        }

        #endregion

        #region "Thread Funktionen"

        private void waitforclient()
        {
            Listener = new TcpListener(System.Net.IPAddress.Any, Convert.ToInt32(txtport.Text));
            Listener.Start();
            this.txtStatus.Invoke(new uidelegate(listener_started));
            //Server auf warten für Clients stellen
            this.txtStatus.Invoke(new uidelegate(wait_for_clients));
            int i = 0;
            while (true)
            {
                //Client akzeptieren
                ClientArray[i] = new Engine(Listener.AcceptTcpClient());
                this.txtStatus.Invoke(new uidelegate(client_accapted));
                i++;
                clientanz++;
            }
        }
        #endregion

        #region "Timer Tick"

        private void checker_Tick(object sender, EventArgs e)
        {
            if (Int32.Parse(txtClientAnzahl.Text) > clientanz)
            {
                txtStatus.Text += DateTime.Now.ToLongTimeString().ToString() + " Ein Client wurde beendet..." + Environment.NewLine;
            }
            txtClientAnzahl.Text = clientanz.ToString();
        }

        #endregion

        #region "Delegate Funktionen"


        private void client_accapted()
        {
            txtStatus.Text += DateTime.Now.ToLongTimeString().ToString() + " Neuer Client akzeptiert..." + Environment.NewLine;
        }

        private void listener_started()
        {
            txtStatus.Text += DateTime.Now.ToLongTimeString().ToString() + " Listener wurde gestartet..." + Environment.NewLine;
        }

        private void wait_for_clients()
        {
            txtStatus.Text += DateTime.Now.ToLongTimeString().ToString() + " Warte auf Clients..." + Environment.NewLine;
        }

        #endregion

        
    }
}

Und das hier ist meine Engine Klasse:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Net.Sockets;
using System.IO;

namespace Virtual_Hell_Chat_Server
{
    class Engine
    {

        #region "Variablen"

        private TcpClient client;
        public Stream stream;
        private Thread T;
        public string clientname = "---";
        public bool fertig = false;
        public delegate void mydelegate();

        #endregion

        #region "Konstruktor"

        public Engine(TcpClient c)
        {
            client = c;
            stream = client.GetStream();
            T = new Thread(new ThreadStart(watch));
            T.IsBackground = true;
            T.Start();
        }

        #endregion

        public string Clientname
        {
            set
            {
                clientname = value;
            }
            get
            {
                return clientname;
            }
        }

        #region "Thread Funktionen"

        private void watch ()
        {
            while (client.Connected)
            {
                try
                {
                    byte[] puffer = new byte[9000];
                    stream.Read(puffer, 0, client.ReceiveBufferSize);
                    string s = "";
                    s = Encoding.ASCII.GetString(puffer);
                    if (s[0] == '/' && s[1] == 'u' && s[2] == ' ')
                    {
                        string[] arr = new string[s.Split().Length];
                        arr = s.Split(' ');
                        clientname = arr[1];
                        VHCServ.make_userlist();
                    }
                    else
                    {
                        VHCServ.broadcast(puffer);
                        stream.Flush();
                    }
                }
                catch
                {
                    VHCServ.clientanz--;
                }
            }
        }

        #endregion

        #region "Methoden"

        public void disconnect()
        {
            T.Interrupt();
            T.Abort();
            client.Close();
            stream = null;
        }

        #endregion
    }
}
18.12.2005 - 10:27 Uhr

Versteht ihr wo das Problem ist?

17.12.2005 - 16:06 Uhr

Ich benutze schon einen Debugger ich arbeite ja mit VS 2005....

Also, ich hab meine Hauptklasse, und eine kleinere Klasse Engine....

In einer Engine wird ein ganzer client erfasst..... mit seinem TcpClient seinem stream usw....

in dieser Engine klasse rennt außerdem ein Thread der überprüft ob durch den Stream von diesem Client etwas zum Server geschickt wird... das ist eben genau diese watch Funktion die ich geschrieben habe....

Und in meiner Hauptklasse hab ich mir ein EngineArray gemacht, was immer einen neuen Client dazu nimmt sobald der Listener einen Client akzeptiert....

Ich hoffe das war verständlich

17.12.2005 - 15:51 Uhr

In wie fern mit einem Debugger? Ich kenn mich mit den Einstellungen nicht gut genug aus...

aber ich hab schon etwas herausgefunden:

wenn ich zwei clients verbinde und dem den ich als zweites verbunden habe einen username zuweise, bekomme ich folgendes:

/ul --- username2

wenn ich jetzt den namen von dem zuerst verbundenen ändere bekomme ich

/ul username1

hm, er hört anscheinend immer nachdem client auf, der die make_user_list() funktion gestartet hat, obwohl das aber meiner meinung nach nicht sein kann....

aber ich weiß überhaupt nicht wo ich den fehler habe

17.12.2005 - 15:24 Uhr

Ich komm einfach nicht auf diesen Fehler -.-

17.12.2005 - 14:32 Uhr

Doch, das hab ich mir anfangs auch gedacht... Aber es funktioniert er muss eingetragen sein, den wenn ich normalen Text schicke, bekommt es der andere Client auch, es bekommen ja auch alle die Userlist, nur ist die eben falsch....

17.12.2005 - 13:58 Uhr

Ich will ja auch das alle die Userlist bekommen, das ist ja der Sinn und Zweck des ganzen...

Mein Problem ist ja das:

wenn zwei clients beim server sind und der erste schickt ein

/u <Clientname1> ab, dann bekommmen alle /ul <Clientname1> was der Client dann in eine Userliste umsetzt.

Wenn jetzt noch der Client2 folgendes schickt: /u <Clientname2> bekommen trotzdem nur

/ul <Clientname1> zurück aber es sollte ja

/ul <Clientname1> <Clientname2> zurückkommen....

lg

17.12.2005 - 11:10 Uhr

Hi Leute!

Ich schreibe gerade mit einem Freund ein Chatprogramm. Er schreibt den Client und ich schreibe den Server.

Also ich habe meinen Server so geregelt:

Ich hab mal meine Hauptklasse, die heißt VHCServ in der ich einen Thread laufen hab, indem in einer Endlosschleife Clients akzeptiert werden, wenn einer kommt...

Dann hab ich eine zweite Klasse, die Engine heißt. In dieser Klasse speichere ich alles was ein Client braucht bzw. hat ab. Daher den TcpClient selbst, seinen Stream und einen Clientnamen.

In der VHCServ Klasse existiert ein Array aus Engine das immer einen neuen Client fasst wenn einer Akzeptiert wurde.

Jetzt hab ich allerdings ein Problem mit der userlist...

Für jeden Client hab ich einen Thread laufen indem er die Streams überwacht ob etwas herauszulesen ist und wenn ja dann ließt er.

Wenn jetzt der Befehl /u <Benutzername> kommt, dann schreibt der Client das auf seinen Benutzernamen und ruft aus dem Thread in der Klasse Engine eine static Funktion der Klasse VHCServ auf, in der eine Userlist gemacht werden soll und dann über die Funktion broadcast an alle Client weitergeschickt werden soll....

Der Source der drei Funktionen kommt hier:

Das ist die Funktion für den Thread der die Streams überwacht:

        private void watch ()
        {
            while (client.Connected)
            {
                try
                {
                    byte[] puffer = new byte[9000];
                    stream.Read(puffer, 0, client.ReceiveBufferSize);
                    string s = "";
                    s = Encoding.ASCII.GetString(puffer);
                    if (s[0] == '/')
                    {
                        string[] arr = new string[s.Split().Length];
                        arr = s.Split(' ');
                        clientname = arr[1];
                        VHCServ.make_userlist();
                        stream.Flush();
                    }
                    else
                    {
                        VHCServ.broadcast(puffer);
                        stream.Flush();
                    }
                }
                catch
                {
                    VHCServ.clientanz--;
                }
            }
        }

Das ist die static Funktion die die Userlist baut

        public static void make_userlist()
        {
            string userlist = "/ul";
            foreach (Engine e in ClientArray)
            {
                    if (e != null && e.clientname != "")
                    {
                        userlist += " " + e.clientname;
                    }
            }
            byte[] sendbytes;
            sendbytes = Encoding.ASCII.GetBytes(userlist);
            broadcast(sendbytes);
        }

Und das hier ist die broadcast Funktion

        public static void broadcast(byte[] message)
        {
            foreach (Engine e in ClientArray)
            {
                if (e != null)
                {
                    try
                    {
                        e.stream.Write(message, 0, message.Length);
                    }
                    catch
                    {
                    }
                }
            }
        }

Mein Problem ist nun folgendes:

Ich bekomme also von einem Client /u <Benutzername1> und alle Clients (also nur einer weil mehr noch nicht da sind) bekommen /ul <Benutzername1> zurück, aber wenn jetzt ein zweiter Client kommt und der /u <Benutzername2> eingibt, bekommen beide /ul <Benutername1> zurück....

Liegt dieser Fehler daran, dass make_user_list() eine static Funktion ist? Und wenn ja, wie kann ich das ganze so umschreiben damit es korrekt funktioniert?

Ich hoffe auf eure Hilfe

lg
Blue_Dragon

10.12.2005 - 11:35 Uhr

Hi Leute!

Ich hab mich jetzt mal in die Basics von Netzwerkprogrammierung eingearbeitet...

Ich kann verbindungen aufbauen und beenden...

Aber jetzt wollte ich etwas über den Stream senden, nur weiß ich nicht wie...

Ich zuerst ein neues Objekt von Stream angelegt und ihm den Stream des Clients zugewiesen...

Aber wie benutze ich jetzt die Write() Methode?

Ich weiß nicht was ich ihm als Parameter geben soll...

der byte[] buffer werden wohl die Daten sein die ich senden will, aber wie bekomme ich einen Stiring in das byte Array und was ist der Parameter Offset und der Count Parameter?

lg

27.11.2005 - 12:56 Uhr

Hi!

Kennt jemand von euch ein gutes Tutorial zur Netzwerkprogrammierung unter VS 2005 (bevorzugt) oder im VS 2003?

Ich möchte mir das nähmlich gerne mal anschauen weiß aber nicht wo ich anfangen soll

danke
Dragon

04.11.2005 - 23:32 Uhr

Wo wir gerade dabei sind, über welchen Namespace binde ich WMI in ein Programm ein?

04.11.2005 - 22:52 Uhr

Es ist keine Hausaufgabe gg

Das Problem ist nur, ich hab schon meinen Professor gefragt wie das funktioniert aber der hat das Thema mit "Das brauch ma im Unterricht nicht" abgetan und will oder kann mir die Frage nicht beantworten....

Ja, ich will zu der oben genannten Datei einfach nur einen neuen Datensatz hinzufügen können, weil ich XML als eine Art Datenbank benutzen will, mit der ich arbeiten kann.....

Und da es mir in der Schule nicht erklärt wird und ich nichts wirklich brauchbares in C# im Internet finde, hab ich mir gedacht ich will hier mal nachfragen...

Also ich will wirklich einfach nur in die XML Datei sowas einfügen

[php]<?xml version="1.0" standalone="yes"?>
<!DOCTYPE Adresse [
<!ELEMENT Datensatz (Vorname,Nachname,Strasse,PLZ,Ort,Telefon?)+>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Nachname (#PCDATA)>
<!ELEMENT Strasse (#PCDATA)>
<!ELEMENT PLZ (#PCDATA)>
<!ELEMENT Ort (#PCDATA)>
<!ELEMENT Telefon (#PCDATA)>
]>
<Adresse>
<Datensatz>
<Vorname>Max</Vorname>
<Nachname>Mustermann</Nachname>
<Strasse>Musterstrasse 3</Strasse>
<PLZ>1220</PLZ>
<Ort>SimCity</Ort>
</Datensatz>
</Adresse>[/php]

So sieht sie eben aus, und ich hätt gern das ich sie durch C# z.B so machen kann

[php]<?xml version="1.0" standalone="yes"?>
<!DOCTYPE Adresse [
<!ELEMENT Datensatz (Vorname,Nachname,Strasse,PLZ,Ort,Telefon?)+>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Nachname (#PCDATA)>
<!ELEMENT Strasse (#PCDATA)>
<!ELEMENT PLZ (#PCDATA)>
<!ELEMENT Ort (#PCDATA)>
<!ELEMENT Telefon (#PCDATA)>
]>
<Adresse>
<Datensatz>
<Vorname>Max</Vorname>
<Nachname>Mustermann</Nachname>
<Strasse>Musterstrasse 3</Strasse>
<PLZ>1220</PLZ>
<Ort>SimCity</Ort>
</Datensatz>
<Datensatz>
<Vorname>Max2</Vorname>
<Nachname>Mustermann2</Nachname>
<Strasse>Musterstrasse 4</Strasse>
<PLZ>1220</PLZ>
<Ort>SimCity</Ort>
</Adresse>[/php]

Ich hoff ich hab mich klar ausgedrückt...

lg
Dragon

04.11.2005 - 13:53 Uhr

Weiß das niemand oder ist du frage zu dumm?

03.11.2005 - 21:36 Uhr

Hi Leute!!

Also, ich hab folgende XML Datei:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE Adresse [
<!ELEMENT Datensatz (Vorname,Nachname,Strasse,PLZ,Ort,Telefon?)+>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Nachname (#PCDATA)>
<!ELEMENT Strasse (#PCDATA)>
<!ELEMENT PLZ (#PCDATA)>
<!ELEMENT Ort (#PCDATA)>
<!ELEMENT Telefon (#PCDATA)>
]>
<Adresse>
<Datensatz>
<Vorname>Max</Vorname>
<Nachname>Mustermann</Nachname>
<Strasse>Musterstrasse 3</Strasse>
<PLZ>1220</PLZ>
<Ort>SimCity</Ort>
</Datensatz>
</Adresse>

Aus diesem Datensatz kann ich lesen via DataSet, aber wie kann ich da in C# einen neuen Datensatz erzeugen und den reinschreiben....

lg
Dragon

27.10.2005 - 17:01 Uhr

Hi!!!

Ich schreib gerade an einem Programm wo ich ein LabelArray und ein ButtonArray habe. Die Buttons und die Label sind an genau der selben Stelle und gleich groß. Die Label haben alle Visible = false.

So, wenn ich jetzt auf einen Button klicke, will ich das der Button Visible = flase und der Label Visible = true wird, aber wie bekomm ich ein Klickevent für einen Button aus einem Array?

lg
Dragon

24.10.2005 - 22:11 Uhr

Danke für die Informationen, die sind sicher sehr Hilfreich!!!!!!

Aber weil du gerade das Wort erwähnst, das sind eigentlich Delegates?

Ich weiß es passt nicht rein, aber ich will keinen Thread öffnen und weils grad reinpasst

24.10.2005 - 21:58 Uhr

Für Ereignisse gibt es auch Hilfen????

Das wusst ich gar nicht, kann man da ein Ereigniss markieren und F1 drücken???

Ich dachte das geht nur für Methoden und sowas ...

Tut mir leid, aber das wusste ich nicht das dies auch geht ....

Hab in VS.net vorher nur C++ geproggt und mach erst seit 2 Montaten C# von der Schule aus

24.10.2005 - 15:39 Uhr

dankeschön jetzt funktioniert es 🙂

24.10.2005 - 14:35 Uhr

danke mit diesen events funktioniert es, ich wusste nur nicht das die so heißen 🙂

hm, aber ich hab jetzt noch ein Problem, wie bekomm ich wenn ich bei MouseEnter die Farbe des Buttons veränder bei MouseLeave wieder die Standartfarbe?

23.10.2005 - 22:32 Uhr

Hi Leute...

Ich würd gerne ein Programm schreiben, das die Hintergrundfarbe eines Buttons ändert wenn man mit der Maus über ihn fährt...

Nur finde ich kein MouseOver event oder so....

welches Event muss ich den da nehmen???

lg
Dragon

20.10.2005 - 21:52 Uhr

Das ist der gesamte Quelltext den ich jetzt drinstehen hab

this.Kurse.Fill(myDSKurse,"Kurse");
this.Teilnehmer.Fill(myDSTeilnehmer,"Teilnehmer");
this.Belegung.Fill(myDSBelegung,"Belegung");

den Rest hab ich via Visual Studio 2003 direkt eingefügt via drag & drop und in den Eigenschaftswerten umgestellt, wenn ich jetzt wie du erklärt hast in den eigenschaften bei DataMember den Tabellennamen z.B. "Kurse" eingebe ist das

"Kein gültiger Eigenschaftswert"

lg
Dragon

20.10.2005 - 19:51 Uhr

jap danke...

nur ich hab das ganze über die drag and drop variante gemacht und unter datamember hab ich nur die option keine...

kann ich das ganze jetzt noch händisch zuweisen? oder muss ich dann den ganzen rest auch über code schreiben?

20.10.2005 - 19:43 Uhr

weiß das irgendwer?

20.10.2005 - 18:14 Uhr

hatte vorher ein Problem, aber jetzt ist er da

20.10.2005 - 18:06 Uhr

Hallo, ich hab hier in den Anhang ein Bild von einer Form die ich gemacht habe hineingestellt.

So wie ganz links, siehst aus wenn ich die Form lade...

dann kann ich auf etwas klicken dann siehts aus wie in der mitte

dann nochmal klicken und dann siehts aus wie ganz rechts 🙂

Ich hätte aber gerne das es bereits beim starten so aussieht wie ganz rechts 🙂

könnt ihr mir da helfen ????

lg
Dragon

17.10.2005 - 21:40 Uhr

Wo find ich diese Grundlagen?

17.10.2005 - 17:04 Uhr

private void Form1_Load(object sender, System.EventArgs e)
{

OleDbConnection MyConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Dokumente und Einstellungen\Matthias\Eigene Dateien\Schule\Angewandte Datentechnik\tigerscott.mdb;User Id=admin;Password=;");

MyConnection.Open();

OleDbCommand myComm = new System.Data.OleDb.OleDbCommand("SELECT * FROM EMP;", MyConnection);

this.Text = myComm.ExecuteNonQuery().ToString();

MyConnection.Close();
}

So sieht er jetzt aus und ich will nur mal testen ob das mit der Verbindung so passt, aber der Text des Formulars ändert sich auf 0 obwohl Datensätze in der DB enthalten sind ..... ich versteh einfach nicht warum das nicht richtig funktioniert

lg
Dragon

16.10.2005 - 18:13 Uhr

Stimmt, einen Standarkonstrukor ohne Parameter brauchst du nur wenn du folgendes schreiben willst...

MyObjekt O = new MyObjekt();

da brauchst du dann einen Konstruktor ohne Parameter....

wenn du es so schreiben willst:

MyObjekt O = new MyObjekt("Das ist ein String der in einem selbst erstellen Konstruktor zugewiesen wird);

dann brauchst du einen Konstruktor der als Parameter einen String will

15.10.2005 - 13:46 Uhr

Hm, die Datenbank ist im selben Ordner wie die Solution....

und was muss ich außer myComm.ExecuteNonQuery() schreibern?

15.10.2005 - 00:50 Uhr

ich hab jetzt die con.Open() und die con.Close() wegenommen, aber ich hab immer noch den selben Fehler....

14.10.2005 - 18:49 Uhr

Hallo!

Ich hab jetzt meinen Quelltext so stehen....

private void button1_Click(object sender, System.EventArgs e)
{
OleDbConnection con = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=Datenbanken.mdb;User Id=admin;Password=;");
OleDbCommand myComm = new OleDbCommand("SELECT * FROM Test", con);
OleDbDataAdapter myAdapter = new OleDbDataAdapter(myComm);
DataSet myDataSet = new DataSet();
con.Open();
myComm.ExecuteNonQuery();
myAdapter.Fill(myDataSet);
con.Close();
}

Eine nicht behandelte Ausnahme des Typs 'System.Data.OleDb.OleDbException' ist in system.data.dll aufgetreten.

Hm, ich weiß nicht was ich jetzt damit anfange .......

Kann mir einer von euch sagen was nicht stimmt ?

lg
Dragon

14.10.2005 - 17:04 Uhr

Und wie geb ich das dann aus?

14.10.2005 - 16:28 Uhr

Hallo!

Danke der CS sollte jetzt stimmen, aber ich hab jetzt immer noch keine Ahnung wie der Befehl für einen Querry geht....

Geht das so?

private void button1_Click(object sender, System.EventArgs e)
{
OleDbConnection con = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=Datenbanken.mdb;User Id=admin;Password=;");
con.Open();
con.CreateCommand() = //irgendwas;
}

also wenn ich statt //irgendwas ein SELECT * FROM *; hinschreibe, bekomm ich dann alle Datensätze der Tabelle geliefert oder wie macht man das?`

lg
Dragon

14.10.2005 - 14:59 Uhr

Und wie sieht ein Connection String aus?

Ich hab das jetzt mal so:

private void button1_Click(object sender, System.EventArgs e)
{
OleDbConnection con = new OleDbConnection();
}

aber ich werd ihm doch als Prameter mitgeben, welche Datenbank und so...

Wie muss ich das den Aufbauen, also Syntaxmäßig und wie mach ich dann einen Querry?

Wie gesagt, ich bin anfänger in C# in Verbindung mit Datenbanken

14.10.2005 - 12:01 Uhr

Hm, ich will mich nur mal mit Datenbankzugriffen und Informationen auslesen beschäftigen....

Und dazu will ich mir keinen Connector runterladen, daher mach ich das in Access....

Hm, und wie is da die Theorie dahinter und welche Klassen und Befehle brauche ich da?

lg
Dragon

14.10.2005 - 10:32 Uhr

Wäre es dann für den Einstieg leicher wenn ich einfach mit MS Access Datenbanken arbeite und dort eine Verbindung aufnehme?

13.10.2005 - 13:36 Uhr

Hi Leute!

Also, ich hab ein Problem.... Ich möchte in C# eine Datenbankverbindung öffnen. Aber ich bin absoluter Neuling wenn es darum geht in C# zu einer Datenbank zu connecten die ich mit phpMyAdmin erstellt habe....

Gibts da eine einfache möglichkeit und kann ich den Namespace "using System.Data;" verwenden?

Ich hab das Forum durchsucht, aber ich hab es über die Beiträge die ich gelsen hab nicht verstanden...

Ich hoff ihr seit nicht böse das ich ein neues Thema erstellt habe, aber ich hab es einfach nicht verstanden...

Ich bräuchte die Befehle um eine Verbindung aufzunehmen, SQL Befehle einzugeben und das ganze auch irgendwann wieder zu beenden.

Ich hoffe auf eure Hilfe

Lg
Dragon

04.10.2005 - 22:00 Uhr

Hallo!

Weiß einer von euch vielleicht wie man eine Form designen kann?

Also einfach auf die Art, dass einfach kein graues Fenster kommt, sonder vielleicht ein blauweißer kreis oder so....

Über Antworten würde ich mich sehr freuen.

Grüße
Dragon

sorry, habe eben erst bemerkt das dieser post im falschen thread steht, hab mich verklickt, kann ein mod ihn bitte verschieben