Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> База данных с нуля, ACCESS 
:(
    Опции темы
MacTep
Дата 15.12.2006, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Есть база данных MS Access. Нужно создать приложение на C# для элементарной работы с данной базой. То есть к ней надо подконнектиться, сделать пару выборок, ввести, изменить, удалить данные. С чего начать? И как это сделать ручками, а не при помощи мышкового программирования? smile Только в коде? Возможно ли это? Может у кого примеры есть таких проектов?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
thomas
Дата 16.12.2006, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



MacTep
Сначала отвечу, а потом спрошу.

conStr = "provider=microsoft.jet.oledb.4.0; data source=" + @"D:\vti\Margo\Prog3.mdb";

все через OleDb: connection, command, DataAdapter ну и что еще нужно DataSet, DataTable, DataRow, DataView.

Создаешь соединение, определяешь запрос ну и DataAdapter.Fill(DataSet, nametable)

Все твои данные в памяти, отображай их где нужно и делай с ними все что хошь.

После изменений не забывай делать DataAdapter.UpDate(nametable)

В общем ADO.NET 


Я конечно не жлоб, но поройтись по ссылкам внизу этой страницы тебе в лом?



Это сообщение отредактировал(а) thomas - 16.12.2006, 00:35

Присоединённый файл ( Кол-во скачиваний: 97 )
Присоединённый файл  Oef09_dbBis2_.zip 40,93 Kb


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
MacTep
Дата 16.12.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Цитата(thomas @  16.12.2006,  00:26 Найти цитируемый пост)
Я конечно не жлоб, но поройтись по ссылкам внизу этой страницы тебе в лом?
Мне не подходит все, что есть внизу страницы. smile А тебе большое спасибо за то, что ты посоветовал хоть что-то... Огромное спасибо и за пример программки... Буду разбираться... Надеюсь, все получится... В общем, + в репутацию. smile



--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
mr.DUDA
Дата 16.12.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Код
using System;
using System.Data;
using System.Data.OleDb;

class Class1
{
    static void Main()
    {
        string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb";
        string queryString = "SELECT Id, CustomerName FROM Customers";

        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            OleDbCommand command = new OleDbCommand(queryString, connection);
            connection.Open();
            using (OleDbDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    int customerId = reader.GetInt32(0);
                    string customerName = reader.GetString(1);

                    Console.WriteLine("Customer ID={0}, Name={1}", customerId, customerName);
                }
                reader.Close();
            }
        }
    }
}


Присоединённый файл ( Кол-во скачиваний: 63 )
Присоединённый файл  mydatabase.zip 9,39 Kb


--------------------
user posted image
PM MAIL WWW   Вверх
MacTep
Дата 16.12.2006, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



mr.DUDA, мне нужно работать не в консоли, а нормальное Windows32 приложение. smile


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
mr.DUDA
Дата 16.12.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Цитата(MacTep @  16.12.2006,  12:30 Найти цитируемый пост)
mr.DUDA, мне нужно работать не в консоли, а нормальное Windows32 приложение.

А есть принципиальная разница ? smile

Выборка данных будет делаться точно таким же способом. Полученные результаты выводим хоть в текстбокс, хоть в листвью, хоть в грид... Можно, конечно, дизайнер заюзать (и проще, и быстрее), но ты говоришь что нужно "всё делать руками".

Добавлено @ 13:33 
З.Ы. нужен какой-то конкретный совет - задавай более конкретный вопрос.


--------------------
user posted image
PM MAIL WWW   Вверх
thomas
Дата 16.12.2006, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



MacTep
Привет.
Вот посмотри еще и этот пример.


Присоединённый файл ( Кол-во скачиваний: 119 )
Присоединённый файл  DataAccess.zip 68,46 Kb


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
MacTep
Дата 25.12.2006, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Разобрался с соединением с базой данных. Теперь проблемы.... Как добавить или удалить данные в таблицу... smile


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
mr.DUDA
Дата 26.12.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Цитата(MacTep @  25.12.2006,  21:52 Найти цитируемый пост)
Как добавить или удалить данные в таблицу...

Для удаления и добавления есть метод ExecuteNonQuery у команды. Или датасетом можно пользоваться.

Пример, база та же что и выше:
Код
using System;
using System.Data;
using System.Data.OleDb;

class Class1
{
    static void Main()
    {
        string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb";

        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();

            Console.WriteLine("Сначала было так:");
            АЧегоУНасТамВТаблице(connection);

            // добавим строку в таблицу Customers
            OleDbCommand command = new OleDbCommand("INSERT INTO Customers(CustomerName) VALUES('Вася')", connection);
            command.ExecuteNonQuery();

            Console.WriteLine(Environment.NewLine + "После добавления строки стало так:");
            АЧегоУНасТамВТаблице(connection);

            // удалим из таблицы запись
            command = new OleDbCommand("DELETE FROM Customers WHERE CustomerName='Вася'", connection);
            command.ExecuteNonQuery();

            Console.WriteLine(Environment.NewLine + "После удаления стало так:");
            АЧегоУНасТамВТаблице(connection);
        }
    }

    static void АЧегоУНасТамВТаблице(OleDbConnection connection)
    {
        OleDbCommand command = new OleDbCommand("SELECT * FROM Customers", connection);
        using (OleDbDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                int customerId = reader.GetInt32(0);
                string customerName = reader.GetString(1);

                Console.WriteLine("Customer ID={0}, Name={1}", customerId, customerName);
            }
        }
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
thomas
Дата 26.12.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



Цитата(MacTep @  25.12.2006,  22:52 Найти цитируемый пост)
Как добавить или удалить данные в таблицу...


MacTep
Привет.
Что бы добавить данные(новая строка) в таблицу, как и подсказал mr.DUDA, существует команда "INSERT INTO ... ".
Что бы удалить данные (строку) используют команду "DELETE ... ".
Это методы работы с таблицами Базы на прямую.

Но добавлять данные в Базу можно и по другому, работая через ДатаСет.
К примеру если нужно составить заказ или оформить продажу, то каждый раз конектиться к Базе и проводить добавление или удаление данных не совсем интересно. Ведь строки в заказ могут как добавляться, так и удаляться. Поэтому гораздо рациональнее произвести редактирование заказа-продажи в таблице ДатаСета, а потом уже когда все выбрано и больше не будет изменений произвести обновление соответствующей таблицы в Базе, вызвав для этого метод UpDate для DataAdaptera.

Это сообщение отредактировал(а) thomas - 26.12.2006, 20:41

Присоединённый файл ( Кол-во скачиваний: 98 )
Присоединённый файл  DB_Primer_C_.zip 94,09 Kb


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
RedButterfly
Дата 31.7.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

Репутация: нет
Всего: нет



ошибку свою исправила
(в предварительном просмотре увидела....)
сейчас делаю удаление, обновление и вставку в бд...
ни первое ни второе ни третье не получается...)

Это сообщение отредактировал(а) RedButterfly - 31.7.2007, 12:30
PM MAIL ICQ Skype   Вверх
RedButterfly
Дата 31.7.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Учусь
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.7.2005
Где: Уфа->Москва

Репутация: нет
Всего: нет



данные не обновляются!
Код

private void buttonUpd_Click(object sender, System.EventArgs e)
        {
            connection.Open(); 
            oleDbUpdateCommand.Connection = connection;    
            
            oleDbUpdateCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Название", System.Data.OleDb.OleDbType.VarChar, 50, "Название"));
            
oleDbUpdateCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Страна", System.Data.OleDb.OleDbType.VarChar, 50, "Страна"));
            
oleDbUpdateCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Кредит", System.Data.OleDb.OleDbType.VarChar, 50, "Кредит"));
            
//oleDbUpdateCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Номер_", System.Data.OleDb.OleDbType.Decimal, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(10)), ((System.Byte)(0)), "Номер", System.Data.DataRowVersion.Original, null));
            
//oleDbUpdateCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Название_", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Название", System.Data.DataRowVersion.Original, null));    
            
//oleDbUpdateCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Страна_", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Страна", System.Data.DataRowVersion.Original, null));    
            
//oleDbUpdateCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Кредит_", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Кредит", System.Data.DataRowVersion.Original, null));    
            dataAdapter.UpdateCommand = oleDbUpdateCommand;
            
//dataAdapter.Update(dataSet, "Testik");
 потому что тут пишет ошибку
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll

            dataTable.AcceptChanges();
            connection.Close();
        }


Это сообщение отредактировал(а) RedButterfly - 31.7.2007, 13:53
PM MAIL ICQ Skype   Вверх
1datr
Дата 2.3.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.2.2009

Репутация: -1
Всего: -1



А меня интересует именно мышковое. Потому что как руками делать это все пишут.  А С# он и создан для того, чтобы мышкой все делать.
PM MAIL   Вверх
Rififi
Дата 2.3.2009, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



imho мышко-елозение в данном случае как раз будет уместным.
добавляешь в проект свой mdb файл. потом из таблиц (см. Server Explorer) создаешь типизированные датасеты. Далее работаешь с БД на высокоуровневом языке. 
PM MAIL   Вверх
gambit
Дата 5.3.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



1datr, а потом мы думаем, почему на сишники опускают, типа мы ничего не умеем и подо все ищем компонент.

Цитата(1datr @  2.3.2009,  12:46 Найти цитируемый пост)
А С# он и создан для того, чтобы мышкой все делать. 

С такой логикой брат ты далеко не уедешь.
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0886 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.