Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 3
1

Класс для управления базой данных

17.05.2013, 13:14. Просмотров 608. Ответов 5
Метки нет (Все метки)

Здравствуйте! Прошу помочь с проблемой. Столкнулся с ней когда стало нужно сделать абстрактный класс.

Вот абстрактный класс:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public abstract class Manager
 
    {
        public Manager() 
 
        {
 
        }
 
        public abstract void AddEntry();
 
        public abstract void UpdateEntry();
 
        public abstract void DeleteEntry();
 
    }
Сделал для него наследующий класс с реализованными методами:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 public class StateManager : Manager
    {
       // public StateManager() : base() { }
        
        public override void AddEntry(string stateName)
        {
            SqlConnection conn = new SqlConnection(@"Data Source=forsaken-PC\SQLEXPRESS;Initial Catalog=testbase;Integrated Security=True");
 
            string Query = "INSERT INTO state (state_name) values ('" + stateName + "');";
            SqlCommand insertCMD = new SqlCommand(Query, conn);
            SqlDataReader myReader;
            try
            {
                conn.Open();
                myReader = insertCMD.ExecuteReader();
                MessageBox.Show("Saved");
                while (myReader.Read()) { }
            }
 
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 
            conn.Close();
        }
 
        public override void UpdateEntry(int stateID, string stateName)
        {
            SqlConnection conn = new SqlConnection(@"Data Source=forsaken-PC\SQLEXPRESS;Initial Catalog=testbase;Integrated Security=True");
 
            string Query = "UPDATE state set state_name='" + stateName + "' where state_id='" + stateID + "' ;";
            SqlCommand updateCMD = new SqlCommand(Query, conn);
            SqlDataReader myReader;
            try
            {
                conn.Open();
                myReader = updateCMD.ExecuteReader();
                MessageBox.Show("Updated");
                while (myReader.Read()) { }
            }
 
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 
            conn.Close();
       
        }
 
        public override void DeleteEntry(int stateID)
        {
            SqlConnection conn = new SqlConnection(@"Data Source=forsaken-PC\SQLEXPRESS;Initial Catalog=testbase;Integrated Security=True");
 
            string Query = "DELETE FROM state where state_id='" + stateID + "';";
            SqlCommand deleteCMD = new SqlCommand(Query, conn);
            SqlDataReader myReader;
            try
            {
                conn.Open();
                myReader = deleteCMD.ExecuteReader();
                MessageBox.Show("Deleted");
                while (myReader.Read()) { }
            }
 
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 
            conn.Close();
        }
    
    }
И использую в основной программе:

C#
1
2
3
4
5
6
7
8
9
private void UpdateButton_Click(object sender, EventArgs e)
        {
            
            int CurrentStateID;
            int.TryParse(StateIDBox.Text, out CurrentStateID);
            StateManager stateManager = new StateManager();
            stateManager.UpdateEntry(CurrentStateID, this.textBoxStateName.Text);
        
        }
Но выдается ошибка "price_manager.StateManager.UpdateEntry(int, string)": не найден метод, пригодный для переопределения C:\Users\forsaken\documents\visual studio 2010\Projects\price_manager\price_manager\StateManager.cs"

Направьте на путь истинный.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2013, 13:14
Ответы с готовыми решениями:

Разработать программу для управления базой данных «Абоненты ГТС»
Разработать программу для управления базой данных «Абоненты ГТС». Запись в базе данных содержит...

Класс для работы с базой данных
Здравствуйте, Нашел сайт с классом для работы с базой данных: <?php class DataBase { ...

Класс для работы с базой данных
Подскажите, пожалуйста, гарантирует ли данный класс закрытие connection по завершению работы с ним...

Класс для работы с базой данных на singleton
использую класс для глобального доступа к единственному экземпляру объекта PDO: class DB {...

5
282 / 281 / 108
Регистрация: 04.09.2010
Сообщений: 638
17.05.2013, 13:31 2
C#
1
2
3
4
5
        public abstract void AddEntry(string s);
 
        public abstract void UpdateEntry(int i, string s);
 
        public abstract void DeleteEntry(int i);
0
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 3
17.05.2013, 13:49  [ТС] 3
Дело в том что мне нужно создать еще не один дочерний класс и туда будут передаваться другие параметры.. как быть?
0
565 / 533 / 151
Регистрация: 17.07.2012
Сообщений: 1,552
Записей в блоге: 1
17.05.2013, 13:57 4
Цитата Сообщение от Scarabun Посмотреть сообщение
Дело в том что мне нужно создать еще не один дочерний класс и туда будут передаваться другие параметры.. как быть?
Как я представляю - перегрузкой:
Либо создавать абстрактные классы-наследники с абстрактной перегрузкой метода, либо же перегружать в конечных классах.
0
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 3
17.05.2013, 14:19  [ТС] 5
Не могли бы вы показать на данном примере как перегрузить в конечном классе?
0
565 / 533 / 151
Регистрация: 17.07.2012
Сообщений: 1,552
Записей в блоге: 1
17.05.2013, 14:32 6
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    abstract class X
    {
        public abstract void MethodA();
    }
 
    class Y : X
    {
        public override void MethodA()
        {
            //Do something
        }
 
        public void MethodA(bool state)
        {
            //Do something
            MethodA(); //or do MethodA
        }
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2013, 14:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Промежуточный класс для реализации методов работы с базой данных.
Кто-нить писал промежуточный класс для реализации методов работы с базой данных? Если не жалко,...

Разработка программы для управления базой данных "Абоненты ГТС"
Разработать программу для управления базой данных «Абоненты ГТС». Запись в базе данных содержит...

Система управления распределенной базой данных
Подскажите какие есть готовые программные продукты для управления распределенной базой данных? Или...

Разработка программы управления базой данных.
Помогите написать костяг программы в Pascal ABC которая бы умела: 1) добавить запись – при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.