Problém s Visual Studiem – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém s Visual Studiem – .NET – Fórum – Programujte.comProblém s Visual Studiem – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
28. 5. 2013   #1
-
0
-

 Ahoj,

moc prosím o pomoc stala se mi taková podivná věc ... 

Pracuji na jednom programu docela už dlouho a nemám pocit, že bych sahal někam do systému Visual studia nebo tak něco ale mám program se dvěma formy jeden funguje pořád uplně normálně ale ten druhý z ničeho nic ( teda alespoň mám takový pocit, samozřejmě je možné, že to bude moje chyba teprve se se C# učím) mi ten druhý formulář přestal reagovat... když spustím test všechna okno jsou průhledná až na plochu nevím co s tím mám dělat ... nejhorší na tom je že nejde například ani v designeru označit textboxy abych mohl zasahovat do jejich periférii .... Mohl by mi prosím, někdo poradit pokud s tím už má nějakou zkušennost .. dělám na tom programu celkem už asi 30 hodin a nechtěl bych to předělávat znovu

Mockrát děkuji za každou radu, přikládám obrázek 

Nahlásit jako SPAM
IP: 188.75.128.–
Reklama
Reklama
ingiraxo+15
Grafoman
28. 5. 2013   #2
-
0
-

takže dokud nespustíš druhej formulář tak všechno jede jak má? Tak chyba bude v tom druhym Formu, sem dej kód z toho formu

pokud po spuštění druhýho formu přestane aplikace reagovat, tak si někde něco zacyklil (až na vyjímky to je pravidlo)

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
28. 5. 2013   #3
-
0
-

#2 ingiraxo
No ona to nehodí žádnou chybu jen prostě všechny textboxy,listboxy a comboboxy jsou pruhledné a nejde do nich psát buttony jsou vpohodě .. prostě jen jako bych je uplně vymazal ( abych se přiznal jednou jsem zapomněl když jsem nuloval textbox napsat příponu.text takže jsem napsal txbcena = null; což jsem si hned po vyhození chyby opravil ale nemyslím,že by to měl být až takový problém ... hlavně ne u těch ostatních txb ...)  když přidám do druhého formuláře textbox druhý děje se s ním uplně to samé.

Cykly tam mám jen při vypisování z databází a všechny by měli být správně ukončené.

Děkuji za odpověď.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace WindowsFormsApplication1
{

    public partial class Form2 : Form
    {
        string pripojovaciretezec = "datasource=localhost;port=3306;username=root;";
       
        public Form2()
        {
            InitializeComponent();
            smazatdb();
            naplnění_comboboxu1();
            smazaddbnabidka();
            

            
        }

        void naplnění_comboboxu1()
        {
            //-----funkce---------- Naplní combobox1 kategoriemi-----------------------------------
            MySqlConnection pripojeni = new MySqlConnection(pripojovaciretezec);
            MySqlCommand command = pripojeni.CreateCommand();
            command.CommandText = "SELECT typ FROM databazejon.produkty";
            pripojeni.Open();
            MySqlDataReader rdr = command.ExecuteReader();

               while (rdr.Read())
                     comboBox1.Items.Add(rdr["typ"]);
            pripojeni.Close();
        }
        void smazaddbnabidka()
            //------- Funkce --------------- smazat databázi nabídka---------------------
        {

            MySqlConnection pripojeni = new MySqlConnection(pripojovaciretezec);
            MySqlCommand command = pripojeni.CreateCommand();
            command.CommandText = "DELETE FROM databazejon.nabidka";

            pripojeni.Open();

            command.ExecuteNonQuery();

            pripojeni.Close();
        }

        void smazatdb()


           //---------- Funkce -------- Smazat databázi údajů klienta -------------------------------------
        {
            
            MySqlConnection pripojeni = new MySqlConnection(pripojovaciretezec);
            MySqlCommand command = pripojeni.CreateCommand();
            command.CommandText = "DELETE FROM databazejon.udaje";

            pripojeni.Open();

            command.ExecuteNonQuery();

            pripojeni.Close();
        
        }
                        
        private void Click_nabidka(object sender, EventArgs e)
        {
            

            tabControl1.Visible = true;

        }

        private void vyber_v_comboboxu(object sender, EventArgs e)
        {
            comboBox2.Items.Clear();
            comboBox2.Text = null;
            string promena = null;

         //-------------- Zjištění kategorie z výběru v comboboxu1 -------------------------------------
    
                
                MySqlConnection pripojeni = new MySqlConnection(pripojovaciretezec);
                MySqlCommand command = pripojeni.CreateCommand();
                command.CommandText = "SELECT kategorie From databazejon.produkty WHERE typ='" + comboBox1.Text + "'";

                pripojeni.Open();
                MySqlDataReader rdr = command.ExecuteReader();

                while (rdr.Read())
                promena = Convert.ToString(rdr["kategorie"]);
                pripojeni.Close();
                    
         //--------------Naplnění comboboxu2 produkty z vybrané kategorie----------------------------------------------
                    string pripojovaciretezec2 = "datasource=localhost;port=3306;username=root;";
                    MySqlConnection pripojeni2 = new MySqlConnection(pripojovaciretezec2);
                    MySqlCommand command2 = pripojeni2.CreateCommand();
                    command2.CommandText= "SELECT produkt From databazejon.databazeproduktu WHERE kategorie=" + promena;
                    
                    pripojeni2.Open();
                    MySqlDataReader rdr2 = command2.ExecuteReader();


                    while (rdr2.Read())
                        comboBox2.Items.Add(rdr2["produkt"]);

                    pripojeni2.Close();

                    comboBox2.Visible = true;
                    Ltypproduktu.Visible = true;



        }

        private void vyber_z_comboboxu2(object sender, EventArgs e)
        {

            //--------------Dosadí do všech txb hodnoty vybraného produktu ----------------------------------------------------
            
            MySqlConnection pripojeni = new MySqlConnection(pripojovaciretezec);
            MySqlCommand command = pripojeni.CreateCommand();
            command.CommandText = "SELECT * FROM databazejon.databazeproduktu WHERE produkt='" + comboBox2.Text + "'";

            pripojeni.Open();

            MySqlDataReader rdr = command.ExecuteReader();

            while (rdr.Read())
            {
                txbkod.Text = Convert.ToString(rdr["kod"]);
                txbcena.Text = Convert.ToString(rdr["cena"]);
                txbdph.Text = Convert.ToString(rdr["dph"]);
                richTextBox1.Text = Convert.ToString(rdr["popis"]);
            }

            pripojeni.Close();


        }

        private void btn1_Click(object sender, EventArgs e)
        {
            //------------------------přepíše udaje v databázi udajo klienta----------------------------------------------

            smazatdb();

            
            MySqlConnection pripojeni = new MySqlConnection(pripojovaciretezec);
            MySqlCommand command = pripojeni.CreateCommand();
            command.CommandText = "INSERT INTO databazejon.udaje(jmeno,misto,ico,dic,cislo) VALUES ('" + txbjmeno.Text + "','" + txbmisto.Text + "','" + txbico.Text + "','" + txbdic.Text + "','" + txbcislo.Text + "')";

            pripojeni.Open();

            command.ExecuteNonQuery();

            pripojeni.Close();

        }

        private void button6_Click(object sender, EventArgs e)
        {
            //--------------------------------- zapisování do databáze nabídky a listboxu ---------------------------------

            double cena = Convert.ToDouble(txbcena.Text);
            double mnozstvi = Convert.ToDouble(numericUpDown2.Value);
            double dph = Convert.ToDouble(txbdph.Text);
            double celkbezdph = cena * mnozstvi;
            double celksdph = ((celkbezdph / 100) * dph) + celkbezdph;




            MySqlConnection pripojeni = new MySqlConnection(pripojovaciretezec);
            MySqlCommand command = pripojeni.CreateCommand();
            command.CommandText = "INSERT INTO databazejon.nabidka(produkt,kod,popis,mnozstvi,jedbezdph,celkbezdph,dph,celksdph) VALUES ('" + comboBox2.Text + "','" + txbkod.Text + "','" + richTextBox1.Text + "','" + numericUpDown2.Value + "','" + Convert.ToInt32(txbcena.Text) + "','" + Convert.ToInt32(celkbezdph) + "','" + Convert.ToInt32(txbdph.Text) + "','" + Convert.ToInt32(celksdph) + "')";

            pripojeni.Open();

            command.ExecuteNonQuery();

            pripojeni.Close();

            listBox.Items.Add(txbkod.Text + "\t" + numericUpDown2.Value + comboBox4.Text + "\t" + comboBox2.Text);


            comboBox2.Text = null;
            txbdph.Text = null;
            txbcena.Text = null;
            richTextBox1.Text = null;
            txbcenasdph.Text = null;
            txbkod.Text = null;
            numericUpDown2.Value = 1;



        }

        

        
    }
}
Nahlásit jako SPAM
IP: 188.75.128.–
ingiraxo+15
Grafoman
28. 5. 2013   #4
-
0
-

zkus si v tom konstruktoru zakomentovat vsechno krom prvních 2 řádků a v tý funkci "smazatdb()" si to přes debug krokuj a podívej se, kde se to zastaví (pokud to bude fungovat, tak odkomentuj další řádek a zkus znova)

pokud to udělá hned po otevření Form2, tak to dělá nějaká z těch 3 posledních funkcí co máš v konstruktoru

potom mi přijde trochu nesmysl, aby ses připojoval k DB v každý fci zvlášť, spíš se připoj jednou a odpoj se společně při zavření formuláře (nebo přes tlačítko)

PS: případně si v konstruktoru zakomentuj vše krom první fce a zkus spustit, jestli to budeš mít taky průhledný

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
28. 5. 2013   #5
-
0
-

vyzkoušel jsem ... stále nefunguje ... myslím, že jsem asi omylem musel někde něco nastavit, ty funkce v konstruktoru byli alespoň 3 hodiny funkční (nebo alespoň jsem je napsal 3 hodiny před tím než se mi toto stalo)  asi jsem někde zasahl do programu kde jsem neměl nebo jsem něco špatně nastavil ve vlastnostech formu... nezbude mi asi nic jiného než hledat nebo program převést do jiného formuláře :/

Nahlásit jako SPAM
IP: 188.75.128.–
ingiraxo+15
Grafoman
28. 5. 2013   #6
-
0
-

takže ti to dělá taky když zakomentuješ všechno v konstruktoru (krom první fce)? Pokud jo, tak si nejspíš něco někde v desingeru nastavil.. mysql moc nedělám, ale kód vypadá, že by mohl fungovat

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
28. 5. 2013   #7
-
0
-

#6 ingiraxo
jojo všechno je pořád stejné asi tak no .. v tom už to budu dohledávat dost těžko (Hlavně v designeru se ještě moc neorientuji, vážně se C# ještě moc neumím pořádně s ním pracuji poslední dva měsíce...(MySQL je vpořádku mám ho na lokálním serveru a všechno fungovalo tak jak má) Ale i tak mockrát děkuji ... a mimochodem mockrát děkuji za vaše c# tutorialy na youtube moc mi pomohli v mých začátcích :)

Nahlásit jako SPAM
IP: 188.75.128.–
m4r100
Návštěvník
29. 5. 2013   #8
-
0
-

Z trochu jineho soudku, ty SQL prikazy jsou primo ukazkovymi priklady pro SQL injection

command.CommandText = "SELECT * FROM databazejon.databazeproduktu WHERE produkt='" + comboBox2.Text + "'";
Nahlásit jako SPAM
IP: 78.102.208.–
30. 5. 2013   #9
-
0
-

#8 m4r10


Jo, to máš pravdu, teprve tvořím funkci escapovat příkazy budu až na závěr ;)

Nahlásit jako SPAM
IP: 188.75.128.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 34 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý