Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2010, 03:38   #1
Natok
Пользователь
 
Аватар для Natok
 
Регистрация: 17.05.2009
Сообщений: 85
По умолчанию не унаследовалась кнопка...

Приложение связано с БД (Firebird).что-то вроде БД университета - чтоб в базе можно было иметь данные о любом предмете, связанным с универом (предмет,учитель, стул...)
на форме есть дерево(структура универа).
если нажать правой клавишей на узле, меню - Edit, Insert & Delete. если нажать Edit - появляется форма, можно посмотреть инфу об обьекте - в Text_боксах выводятся кое-какие данные...
для каждого обьекта универа (и базы тоже) предусмотрен свой клас - чтоб было попроще). и есть один базовый - TUObject.
Код:
namespace Universytet
{
    public partial class TUObject : Form
    {
        protected int id;
                protected int classNomer;      

        public TUObject()
        {
            InitializeComponent();
            id = 0;
            classNomer = 0;
            con = new FbConnection();
        }
        public TUObject(int i, FbConnection c)
        {
            InitializeComponent();
            id = i;
            classNomer = -1;
            con = c;
        }
        public TUObject(int senderID, int classnomer, FbConnection c)
        {
            InitializeComponent();
            id = senderID;
            classNomer = classnomer;
            con = c;
        }

        private void TUObject_Load(object sender, EventArgs e)
        {
            if (classNomer == -2) delete();
            if (classNomer == -1)
            {
                string query = "SELECT NAME FROM TUOBJECTS WHERE UNIQUE_NO = " + id.ToString();
                FbDataAdapter da = new FbDataAdapter(query, con);
                DataTable dt = new DataTable();
                da.Fill(dt);

                textBox1.Text = dt.Rows[0]["Name"].ToString();
            }

        }

        
        
        public virtual void delete()
        {
            ...
        }

        protected virtual void button2_Click(object sender, EventArgs e)  
        {
            Close();
        }
//вот здесь все кул работает.
        protected virtual void button1_Click_1(object sender, EventArgs e)
        {
            string query = "";
            if (classNomer != -1)
            {
                int senderID = id;
                string idQuery = "SELECT max(Unique_no) FROM TUObjects";
                FbDataAdapter idAdapter = new FbDataAdapter(idQuery, con);
                DataTable idTable = new DataTable();
                idAdapter.Fill(idTable);
                id = Convert.ToInt32(idTable.Rows[0][0]) + 1;

                string newname = textBox1.Text;
                query = "Insert INTO TUObjects (Unique_no, Name, Class_no, Major) VALUES (";
                query += id.ToString();
                query += ", '" + newname + "'";
                query += ", " + classNomer.ToString();
                query += ", " + senderID.ToString() + ")";
            }
            else
            {
                if (textBox1.Text == "")
                {
                    //MessageBox.Show("Please enter the name.");
                    if (this.GetType().ToString() == "Universytet.TUObject") Close();
                    return;
                }
                string newname = textBox1.Text;
                query = "Update TUObjects SET Name = '" + newname + "' WHERE Unique_no = " + id.ToString();
            }
            FbDataAdapter da = new FbDataAdapter(query, con);
            DataTable dt = new DataTable();
            da.Fill(dt);

            if (this.GetType().ToString() == "Universytet.TUObject")
            {
                MessageBox.Show("Transaction has commited sucsesfuly");
                Close();
            }

        }






    }
}
вот ето он и был. в дереве все работает - все 3 метода.
Natok вне форума Ответить с цитированием
Старый 05.01.2010, 03:39   #2
Natok
Пользователь
 
Аватар для Natok
 
Регистрация: 17.05.2009
Сообщений: 85
По умолчанию продолжение...

а вот когда сделан наследственный клас, то здесь что-то не так с Edit_ом. как нажымаю на Edit, форма появляется, изменяю данные, а вот кнопка button1_...не работает.
вот наследственный клас Персона
Код:
public partial class Person : TUObject
    {
        public Person(): base()
        {
            InitializeComponent();
        }

        public Person(int i, FbConnection c)
            : base(i, c)
        {
            InitializeComponent();
        }

        public Person(int senderID, int classNomer, FbConnection c)
            : base(senderID, classNomer, c)
        {
            InitializeComponent();
        }

        private void Person_Load(object sender, EventArgs e)
        {
            if (classNomer == -2) delete();
            if (classNomer == -1)
            {
                // MessageBox.Show("dy-dy");
                string query = "SELECT * FROM PERSON WHERE UNIQUE_NO = " + id.ToString();
                FbDataAdapter da = new FbDataAdapter(query, con);
                DataTable dt = new DataTable();
                da.Fill(dt);

                textBox2.Text = dt.Rows[0]["DATE_OF_BIRTH"].ToString();
                textBox3.Text = dt.Rows[0]["ADDRESS"].ToString();

            }

        }

        protected override void button1_Click(object sender, EventArgs e)
        {
            base.button1_Click_1(sender, e);
            string query = "";
            string newname = textBox2.Text;
            string newtel = textBox3.Text;
            if (classNomer != -1)
            {
                query = "Insert INTO PERSON (Unique_no, DATE_OF_BIRTH, ADDRESS) VALUES ( ' " + id.ToString() + " ', ' " + newname + " ', ' " + newtel + " ' )";
            }
            else
            {
                if (textBox2.Text == "")
                {

                    if (this.GetType().ToString() == "Universytet.Person") Close();
                    return;
                }
                if (textBox3.Text == "")
                {

                    if (this.GetType().ToString() == "Universytet.Person") Close();
                    return;
                }
                query = "Update PERSON SET DATE_OF_BIRTH = '" + newname + "', ADDRESS = '" + newtel + "' WHERE Unique_no =" + id.ToString();
            }
            FbDataAdapter da = new FbDataAdapter(query, con);
            DataTable dt = new DataTable();
            da.Fill(dt);

            if (this.GetType().ToString() == "Universytet.Person")
            {
                MessageBox.Show("Transaction has commited sucsesfuly");
                Close();
            }
        }

        protected override void button2_Click(object sender, EventArgs e)
        {
            ...        }

            }
}
Natok вне форума Ответить с цитированием
Старый 05.01.2010, 05:52   #3
Natok
Пользователь
 
Аватар для Natok
 
Регистрация: 17.05.2009
Сообщений: 85
По умолчанию

everything is ok'. Problem was in wrong name of method:

Код:
protected override void button1_Click_1(object sender, EventArgs e)//<----------------button1_Click_1, not button1_Click!!!!
        {
            base.button1_Click_1(sender, e);
            string query = "";
            string newname = textBox2.Text;
            string newtel = textBox3.Text;
            if (classNomer != -1)
            {
                query = "Insert INTO PERSON (Unique_no, DATE_OF_BIRTH, ADDRESS) VALUES ( ' " + id.ToString() + " ', ' " + newname + " ', ' " + newtel + " ' )";
            }
            else
            {
                if (textBox2.Text == "")
                {

                    if (this.GetType().ToString() == "Universytet.Person") Close();
                    return;
                }
                if (textBox3.Text == "")
                {

                    if (this.GetType().ToString() == "Universytet.Person") Close();
                    return;
                }
                query = "Update PERSON SET DATE_OF_BIRTH = '" + newname + "', ADDRESS = '" + newtel + "' WHERE Unique_no =" + id.ToString();
            }
            FbDataAdapter da = new FbDataAdapter(query, con);
            DataTable dt = new DataTable();
            da.Fill(dt);

            if (this.GetType().ToString() == "Universytet.Person")
            {
                MessageBox.Show("Transaction has commited sucsesfuly");
                Close();
            }
        }
So easy! Usually all of my problems are in bad attention...
Natok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кнопка сброс Nellas Общие вопросы Delphi 2 21.10.2009 22:19
Кнопка пуск Черничный Общие вопросы Delphi 2 07.08.2008 08:30
Кнопка не создается Манжосов Денис :) Компоненты Delphi 10 28.04.2008 17:43
Кнопка обнуления Pabelu Microsoft Office Excel 6 15.04.2008 17:09