Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von jHammer
Thema: SQLite: Datenbankzugriffe
Am im Forum: Datentechnologien

Dumme Frage: Was genau willst du mit dieser Tabelle machen und wie soll die Ausgabe von einem SELECT * FROM tab1 aussehen?

Generell muss man bei SQLite-Insert den Value eines Primary Key nicht mit angeben. Einfach weglassen.

Heute abend kann ich dir mal was dazu schicken. (Sofern du willst, frag per PN nach)

Thema: SQL: Synchronisierung zweier Datenbanken
Am im Forum: Datentechnologien

Ok, das ist logisch. Da das Projekt nachher mal in eine Online-Lösung übergehen wird, werde ich mich dahingehend nochmal mit dem Thema genauer beschäftigen und solche Sicherheitsüberprüfungen einbauen.

Gibt es sonst noch irgendwelche Sicherheitsmerkmale auf die ich achten sollte?

Thema: SQL: Synchronisierung zweier Datenbanken
Am im Forum: Datentechnologien

Und? Auch in einer lokalen Datenbank gibt es DELETE, UPDATE usw.[/quote]
Was brächte es seine eigene Datenbank zu verändern? Natürlich könnte jemand böswilliges an den PC gehen und dann Daten verändern, aber da geb ich die Einhaltung einer gewissen Sicherheit an den PC-Inhaber ab. Für dieses kleine private Projekt ist es mir den Aufwand nicht wert.

Aber trotzdem würde es mich interessieren, wie ich denn falsche SQL-Statements in eine Abfrage, wo der selbsteingegebene String zwischen zwei %-Zeichen ist, einbinde?

Thema: SQL: Synchronisierung zweier Datenbanken
Am im Forum: Datentechnologien

Problem behoben -.-

Ganz dummer Fehler meinerseits. Habe nicht bedacht, dass VS im "Nicht-Debug"-Modus auf den Release-Ordner zugreift und im Debug-Modus auf den Debug-Ordner zugreift.

Im Release-Ordner lag leider nicht dieselbe Datenbank, wie im Debug-Ordner.

Kopf->Tischplatte

Thema: SQL: Synchronisierung zweier Datenbanken
Am im Forum: Datentechnologien

1.SQL Injection bei einer Embedded Datenbank? o0
Die Datenbank ist auf nur auf dem lokalen PC. Es werden keinen Daten übertragen.
2.Wie sollte mich das in irgendeiner Weise weiterbringen?

Bin mir auch grad nicht sicher, ob die gebräuchlichen SQL-Datenbanken ein Semikolon benötigen, aber SQLite benötigt es. Ohne das Semikolon wird der Befehl nicht abgeschickt und landet im Datennirvana.

Thema: SQL: Synchronisierung zweier Datenbanken
Am im Forum: Datentechnologien

Hallo,

ich bin mittlerweile mit der Entwicklung ein gutes Stück vorangeschritten. Aber jetzt hänge ich an einem dummen Fehler und weiß nicht, wie ich ihn beheben kann.

Ich habe gestern Nacht die Suchfunktion implementiert. Soweit auch kein Problem, aber ich kriege jedesmal eine Fehlermeldung "No Such Table: spiele." bzw beim Testen "No Such Table: in_out."

Das ist bestimmt nicht die allertollste Programmierung aber diesen Anspruch stelle ich auch nicht an mich, daher bitte nur bei der Fehlerbehebung helfen. Danke ;)

Der lange CommandText, der auskommentiert ist, ist normalerweise der richtige SELECT. Der "SELECT * FROM in_out;" ist nur zum Testen da.

Das komische an dem Fehler ist, dass er nur auftaucht, wenn ich nicht den Code "Zeile für Zeile (Einzelschritt)" durchgehe. (Also "Starten ohne Debugging")
Gehe ich ihn Zeile für Zeile durch, funktioniert alles wunderbar. Ich habe den SELECT-String auch schon von Hand in die Datenbank eingeben und er führt zum erwünschten Ergebnis.

Ich hoffe, ihr könnt mir helfen.


private void btn_search_Click(object sender, EventArgs e)
        {
            connect();
            sql_con.Open();
            sql_cmd = sql_con.CreateCommand();
            #region Strings & Bools
            string tb1_txt;
            string tb2_txt;
            string tb3_txt;
            string tb4_txt;
            #endregion
            #region Programmsuche
            if (tb_srch_name.Text != "")
            {
                tb1_txt = "AND sp_name LIKE '%" + tb_srch_name.Text + "%'";
            }
            else
                tb1_txt = "";
            if (tb_srch_stichwort.Text != "")
            {
                tb2_txt = "AND sp_stichworte LIKE '%" + tb_srch_stichwort.Text + "%'";
            }
            else
                tb2_txt = "";
            if (str_cb_spart_auswahl != "")
            {
                tb3_txt = "AND spielarten.spart_bez LIKE '%" + str_cb_spart_auswahl.ToLower() + "%'";
            }
            else
                tb3_txt = "";
            if (str_in_out != "")
            {
                tb4_txt = "AND in_out_id LIKE '%" + str_in_out + "%'";
            }
            else
                tb4_txt = "";
            //string CommandText = "SELECT spiel_id Spielnummer, sp_name Name,  spielarten.spart_bez Spielart FROM spiele, spielarten WHERE spiele.spart_id = spielarten.spart_id " + tb1_txt + tb2_txt + tb3_txt + tb4_txt + ";";
            string CommandText = "SELECT * FROM in_out;";
            DB = new SQLiteDataAdapter(CommandText, sql_con);
            DS.Reset();
            DB.Fill(DS);
            Grid.DataSource = DT;
            sql_con.Close();

            #endregion
        }

Thema: SQL: Synchronisierung zweier Datenbanken
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: (My)SQL(lite)

Hallo zusammen,

ich habe eine Frage.

Ich plane im Moment eine Anwendung für den örtlichen CVJM. (Selber Vorstandsmitgleid)
Bei dieser Anwendung soll es eine Onlinedatenbank geben. Diese wird wahrscheinlich MySQL werden. (Die neue Version 5.5 klingt ja ganz interessant)
Auf diese Datenbank greifen halt verschiedene Clients drauf zu und laden Daten hoch. Diese wird immer den aktuellsten Stand enthalten.
Für den Fall das einige Mitarbeiter längere Zeit keinen Internetzugang haben, soll es eine Offline-Datenbank geben. (Wahrscheinlich SQLite, für andere/bessere Alternativen bin ich immer offen)
Man soll einfach auf einen Button klicken und dann soll das Programm (wenn es möglich ist) die beiden Datenbanken synchronisieren. Beim ersten Sync ja noch kein Problem. Aber wie laufen die nächsten Syncs?

Gibt es SQL-seitig eine Möglichkeit dazu oder hat sonst irgendwer eine Idee, wie ich dieses Problem lösen kann?

Noch eine andere Frage hätte ich. Es sollen auch Daten gespeichert werden. (.doc oder PDFs)
Wie würdet ihr das machen? Die Dateien direkt in die Datenbank (mit BLOB, oder?) oder sollten in die Datenbank nur die Pfade zu den Dateien? (Dann wäre natürlich eine 100%ige Offlinefunktionalität nicht mehr gegeben.

Für jegliche Hilfe bin ich sehr dankbar.

Mit freundlichen Grüßen

jHammer

Thema: Dynamische Controls werden verworfen
Am im Forum: GUI: Windows-Forms

Hallo,

hier mal mein Code-Snippet für das Abfangen des Dispose:

protected override void Dispose(bool disposing)
 {
   if(disposing && (components != null)
        {
             components.Dispose();
         }
    else
     base.Dispose(disposing);
}

Ist das so richtig und wenn ja, wie wende ich das auch das dynamische Form an?

Thema: Dynamische Controls werden verworfen
Am im Forum: GUI: Windows-Forms

Hallo zusammen,

so ich weiß mittlerweile wie ich das Dispose in der Hauptform abfange, aber wie mach ich das in dem dynamisch erzeugten Form?
Hab mittlerweile auch alles mögliche an Threads durchwühlt, aber immer noch nichts gefunden.

Thema: Dynamische Controls werden verworfen
Am im Forum: GUI: Windows-Forms

Hallo,

ich habe in einem Projekt dynamisch Objekte (Forms, Controls) erstellt. Die Controls sind auch auf dem Form zu sehen und funktionieren.

public partial class Form1 : Form
    {
        public Form eingabe = new Form();
        public Button farbe = new Button();
        public Button kreis_ok = new Button();
        public Button recht_ok = new Button();
        public Button linie_ok = new Button();
        public Label label1 = new Label();
        public Label label2 = new Label();
        public Label label3 = new Label();
        public Label label4 = new Label();
        public TextBox text1 = new TextBox();
        public TextBox text2 = new TextBox();
        public TextBox text3 = new TextBox();
        public TextBox text4 = new TextBox();
        public Pen mypen = new Pen(System.Drawing.Color.AliceBlue);
              
        
        public Form1()
        {
            InitializeComponent();
        }
        
        private void button4_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void kreis_Click(object sender, EventArgs e)
        {
            
            eingabe.Show();
            //Controls Text
            kreis_ok.Text= "OK";
            eingabe.Text = "Eingabe";
            label1.Text = "Kreismittelpunkt x:";
            label2.Text = "Kreismittelpunkt y:";
            label3.Text = "Kreisradius:";
            kreis_ok.Click+=handler;
            //Controls-Positionierung
            kreis_ok.Top=230;
            kreis_ok.Left=20;
            label1.Top = 10;
            label2.Top = 40;
            label3.Top = 70;
            label1.Left = 20;
            label2.Left = 20;
            label3.Left = 20;
            label4.Left = 20;
            text1.Top = 10;
            text2.Top = 40;
            text3.Top = 70;
            text1.Left = 150;
            text2.Left = 150;
            text3.Left = 150;
            //Controls hinzufügen
            eingabe.Controls.Add(kreis_ok);
            eingabe.Controls.Add(label1);
            eingabe.Controls.Add(label2);
            eingabe.Controls.Add(label3);
            eingabe.Controls.Add(text1);
            eingabe.Controls.Add(text2);
            eingabe.Controls.Add(text3);           
        }
        private void Rechteck_Click(object sender, EventArgs e)
        {
            eingabe.Show();
            //Controls Text
            recht_ok.Text = "Ok";
            eingabe.Text = "Eingabe";
            label1.Text = "Startpunkt x:";
            label2.Text = "Startpunkt y:";
            label3.Text = "Endpunkt x:";
            label4.Text = "Endpunkt y:";
            recht_ok.Click += handler;
            //Controls-Positionierung
            recht_ok.Top = 230;
            recht_ok.Left = 20;
            label1.Top = 10;
            label2.Top = 40;
            label3.Top = 70;
            label4.Top = 100;
            label1.Left = 20;
            label2.Left = 20;
            label3.Left = 20;
            label4.Left = 20;
            text1.Top = 10;
            text2.Top = 40;
            text3.Top = 70;
            text4.Top = 100;
            text1.Left = 150;
            text2.Left = 150;
            text3.Left = 150;
            text4.Left = 150;
            //Controls hinzufügen
            eingabe.Controls.Add(recht_ok);
            eingabe.Controls.Add(label1);
            eingabe.Controls.Add(label2);
            eingabe.Controls.Add(label3);
            eingabe.Controls.Add(label4);
            eingabe.Controls.Add(text1);
            eingabe.Controls.Add(text2);
            eingabe.Controls.Add(text3);
            eingabe.Controls.Add(text4);
            
        }

        private void Linie_Click(object sender, EventArgs e)
        {
            eingabe.Show();
            //Controls Text
            linie_ok.Text = "Ok";
            eingabe.Text = "Eingabe";
            label1.Text = "Startpunkt x:";
            label2.Text = "Startpimlt y:";
            label3.Text = "Endpunkt x:";
            label4.Text = "Endpunkt y:";
            linie_ok.Click += handler;
            //Controls-Positionierung
            linie_ok.Top = 230;
            linie_ok.Left = 20;
            label1.Top = 10;
            label2.Top = 40;
            label1.Left = 20;
            label2.Left = 20;
            text1.Top = 10;
            text2.Top = 40;
            text1.Left = 150;
            text2.Left = 150;
            //Controls hinzufügen
            eingabe.Controls.Add(linie_ok);
            eingabe.Controls.Add(label1);
            eingabe.Controls.Add(label2);
            eingabe.Controls.Add(text1);
            eingabe.Controls.Add(text2);            
        }
        public void handler(object sender, EventArgs e)
        {
            if (sender == recht_ok)
            {

                int rechteck_x = Convert.ToInt32(text1.Text);
                int rechteck_y = Convert.ToInt32(text2.Text);
                int endpunkt_x = Convert.ToInt32(text3.Text);
                int endpunkt_y = Convert.ToInt32(text4.Text);
                int höhe = endpunkt_x - rechteck_x;
                int breite = endpunkt_y - rechteck_y;
                System.Drawing.Graphics graph = this.CreateGraphics();
                graph.DrawRectangle(mypen, new Rectangle(rechteck_x, rechteck_y, breite, höhe));
                eingabe.Hide();
            }
            if (sender == kreis_ok)
            {
                int rechteck_x = Convert.ToInt32(text1.Text);
                int rechteck_y = Convert.ToInt32(text2.Text);
                int radius = Convert.ToInt32(text3.Text);
                System.Drawing.Graphics graph = CreateGraphics();
                graph.DrawEllipse(mypen, new Rectangle(rechteck_x, rechteck_y, radius, radius));
                eingabe.Hide();
            }
       }
}

Wenn ich dieses dynamische Fenster über das "Kreuz" schließe und es nochmal aufrufen will, gibt er mir einen Fehler aus (Auf das verworfene Objekt kann nicht zugegriffen werden.).
Wie kann ich dieses Objekt jetzt wieder erstellen?

Thema: paint-ähnlichen Stift programmieren
Am im Forum: Grafik und Sound

Zitat von SeeQuark
Im Artikel steht, dass man e.Graphics verwenden sollte, und darum nur im Paint-Event zeichnen kann. Mit Invalide() kannst du das Neuzeichnen erzwingen.
Dann müsste das ganze doch so aussehen, oder?

private void hauptfenster_Paint(object sender, PaintEventArgs e)
        {
            if (stift_an == 1)
            {
                Size größe = new Size(1, 1);
                Point mausposition = new Point(MousePosition.X, MousePosition.Y);
                Rectangle punkt = new Rectangle(mausposition, größe);
                Pen mypen = new Pen(System.Drawing.Color.GreenYellow);
                e.Graphics.DrawRectangle(mypen, punkt);
                Invalidate();
                
                //graph.DrawString("0", newFont, Brushes.Chocolate, e.X, e.Y);
            }
        }

Thema: paint-ähnlichen Stift programmieren
Am im Forum: Grafik und Sound

Zitat von Khalid
Das hier [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox) sollte dich erstmal weiter bringen
s.o.
Zitat von jHammer
Ich habe hier im Forum schon den Artikel mit Paint/OnPaint gelesen. Werde aber noch nicht so richtig schlau aus ihm. Ich bin halt noch ein totaler Anfänger.

Thema: paint-ähnlichen Stift programmieren
Am im Forum: Grafik und Sound

Hallo zusammen,

ich wollte ein recht einfaches Bildbearbeitungsprogramm programmieren.
Ich habe jetzt erstmal (weil wir das in der Schule bisher nur gelernt haben) mit Create.Graphics() gearbeitet. Ich habe hier im Forum schon den Artikel mit Paint/OnPaint gelesen. Werde aber noch nicht so richtig schlau aus ihm. Ich bin halt noch ein totaler Anfänger.

In der Schule haben wir bisher nur Strings "gemalt". (siehe Kommentar im Code)
Jetzt wollte ich aber, dass ich einen "Stift" habe. So wie der Stift in Paint.

Hier dazu der Code:

private void hauptfenster_MouseClick(object sender, MouseEventArgs e)
        {
            if (stift_an == 1)
            {
                Graphics graph = CreateGraphics();
                //graph.DrawString("0", newFont, Brushes.Chocolate, e.X, e.Y);
                double Y = e.Y;
                double X = e.X;
                PointF y_x = new PointF(e.X, e.Y);
                System.Drawing.Pen myPen;
                myPen = new System.Drawing.Pen(System.Drawing.Color.Red);
                graph.DrawLine(myPen, y_x); 
                               
            }        
        }
Ich scheitere noch an diesem "PointF". Ich weiß nicht, wie ich dem die aktuelle Mausposition übergebe.
Ich habe es auch schon so probiert. Dann meckert er aber, dass ich PointF nur ein Argument übergebe:

PointF y = new PointF(e.Y);
                PointF x = new PointF(e.X);
                System.Drawing.Pen myPen;
                myPen = new System.Drawing.Pen(System.Drawing.Color.Red);
                graph.DrawLine(myPen,y,x); 
Ihr habt bestimmt eine viel elegantere Lösung. Ich brauch wirklich eure Hilfe. Vielleicht könnte mir ja auch jemand dieses Paint/OnPaint mal idiotensicher erklären.

Thema: Einzelne Worte aus Dateien lesen und wieder schreiben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo erstmal,

ich und ein paar Freunde haben in der Schule im Moment ein Projekt, bei dem wir das Spiel "Hangman"(Galgenmännchen) programmieren sollen.

Dort sind wir im Moment bei einem großen Problem.
Besser gesagt zwei Probleme.

Erstens wissen wir nicht wie wir aus einer Datei(txt-file) nur ein einzelnes Wort auslesen.
Wir haben zwar schon einige Varianten des Stringreader ausprobiert, aber immer wurde die ganze Datei ausgelesen und nicht nur ein Wort.

Zweitens wissen wir nicht, wie wir in eine Text-Datei ein Wort reinschreiben. Bei uns wurden immer die alten Worte wieder gelöscht und nur das neue reingeschrieben.


Wir hoffen ihr könnt uns dabei helfen!!!

Danke schon mal im Vorraus!

P.S. Das Spiel soll in der Console erstellt werden.
P.P.S. In den Thread werden bestimmt noch mehr Probleme reinkommen!