|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
.NET 4.x Работа с access20.03.2014, 20:01. Показов 15021. Ответов 33
Метки нет (Все метки)
Собственно имеется несколько вопрос, касающихся работы с access-ом в c#:
Не по теме: Извиняюсь за такое количество вопросов, т.к. ни разу не работал с БД Access в c#! UP!
0
|
|
| 20.03.2014, 20:01 | |
|
Ответы с готовыми решениями:
33
Что лучше: работа с Access через ADO.NET или силами самого Access? Возможна ли работа проги на Access без Access? Работа с БД Access без Access |
|
Заблокирован
|
||||||||||||||||||||||||||||||||||||
| 20.03.2014, 20:51 | ||||||||||||||||||||||||||||||||||||
Сообщение было отмечено FerroDS как решение
Решение
1. Чтобы создать базу данных Access, используя c#, надо подключить библиотеку ADOX.
Проект или Свойства проекта - добавить новую ссылку - COM - выбрать Microsoft ADO Ext.6.0 for DDL... у меня есть только Microsoft ADO Ext.2.8 for DDL... выбрала ее, рабоиает. 2. Добавить
Чтобы создать таблицу и прочее, надо 1. к той БД подключиться. Про пространство имен см. выше. Теперь надо объявить вот такие два объекта как можно глобальнее. Лучше прям в классе формы.
Чтобы в ту таблицу вставлять записи, можно делать так
и понадобится еще одна кнопка, а к ней обработчик:
Это, конечно, не все, а только азы. А все сюда не поместится.
1
|
||||||||||||||||||||||||||||||||||||
|
Заблокирован
|
|
| 20.03.2014, 20:54 | |
|
FerroDS, а с другими БД вы в С# работали?
Добавлено через 1 минуту Блондинка с ОЗМ, а можно же через студию таблицы создать. Так же, наверное, проще будет?
0
|
|
|
Заблокирован
|
|
| 20.03.2014, 20:58 | |
|
Ev_Hyper , вы думаете, я это все в блокноте писала, без Студии?
1
|
|
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
| 20.03.2014, 22:43 [ТС] | |
|
Блондинка с ОЗМ, спасибо большое!
Т.е. изменять записи и прочие подобные действия делать аналогично "созданию таблиц" SQL - запросом?
0
|
|
|
Заблокирован
|
|
| 21.03.2014, 08:58 | |
|
0. Сильно благодарить не за что - этого недостаточно. Просто тема очень обширная и в одном посте ее не охватишь. У вас должны возникнуть более конкретные вопросы, когда вы начнете работу. И задавайте их по одному))))))
1. Прежде всего к любой базе данных надо подключиться. Для этого нужны две вещи - пространство имен (для вашего случая using System.Data.OleDb и объект DbConnection (для Access это OleDbConnection, для других баз данных - другие варианты), а для некоторых операций и некоторых видов баз данных надо еще подключать какую-то дополнительную библиотеку. Для создания новой базы данных Access, например, нужен ADOX.2. Если вы работаете с базой данных напрямую - да, вы создаете объект DbCommand (для Access - OleDbCommand) и через него передаете SQL-запрос. Но на самом деле это только видимость)))) .NET переводит его на другой язык, поэтому синтаксис SQL-запроса в Студии несколько отличается от обычного. Чтобы это показать, я выбрала пример из моей практики с созданием таблицы, где одно из полей называется value. Студия не пропускала такое имя, и его пришлось экранировать не одинарными кавычками и не кавычками с клавиши ё, а именно квадратными скобками. Кавычки не компилировались. 3. Если ж вы работаете не с самой базой данных, а с ее копией в виде датасета, то SQL-запросы не нужны (кроме одного - SELECT что надо из какой нужно таблицы), а нужно использовать OleDbDataAdapter - посредник между базой данных и датасетом -и его методы, а также методы класса Dataset. Наиболее важные см. выше - это Fill, заполнение датасета из базы данных, и Upgrade, перенос измененных данных из датасета в базу. Но могут понадобиться и другие методы, например, InsertCommаnd. 4. Можно еще создавать объект класса CommandBuilder, тогда он сам создает нужные запросы, но я этот способ не люблю - он работает только с маленькими учебными базами данных, а с настоящими большими вылетает ошибка.
2
|
|
|
Заблокирован
|
||
| 21.03.2014, 10:01 | ||
|
0
|
||
|
Заблокирован
|
|
| 21.03.2014, 10:13 | |
|
Я не телепат, а программист, и понимаю написанное в соответствии с нашей профессиональной терминологией.
Какой студии?! Если создавать БД в Visual Studio, то это и есть программно, и иначе как я вы не сделаете. А ни в каких других студиях базы данных под C# не создают. А если вы имели в виду Access, то и надо писать Access, а не студия. А если вы имели в виду что-то еще.... Хотите чтоб вас понимали - выражайтесь на общепринятом языке, а не выдумывайте свой.
2
|
|
|
Заблокирован
|
|||
| 21.03.2014, 10:21 | |||
|
0
|
|||
|
Заблокирован
|
||
| 21.03.2014, 10:51 | ||
|
Я не видела такой версии Студии, в которой было бы предусмотрено добавление таким способом баз данных. Но, я не перебирала все версии. Однако, если в 2013 такое и сделали, то скорее для своей любимой MS SQL. А нам надо Access. Причем на самом деле, нам бы еще надо знать, какую Access. mdb или accdb. Шансы на включение создания mdb из Студии почти равны нулю. Я написала примеры, какие попались первыми - с чего-то надо же начинать, а все в один пост по-любому не впихнешь. Добавлено через 21 минуту Кстати, любопытства ради глянула свою 2008. Нормальных баз данных этим способом, конечно, не создашь. Но создаются какие-то подобия их, с расширениями .mdf или .sdf. Может, кому-то зачем-то и нужны, но к теме ЭТОГО вопроса точно никаким боком.
2
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|||
| 21.03.2014, 11:59 | |||
|
Не по теме:
0
|
|||
|
Заблокирован
|
||
| 21.03.2014, 12:05 | ||
|
Мне некогда расписывать "базы данных, которые планируется создавать и администрировать программами, написанными на C#". Но вот ради вас расписала. И что я или автор вопроса с этого будем иметь?
1
|
||
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
| 21.03.2014, 12:25 [ТС] | |
|
В принципе мне эта основа и нужна была.
0
|
|
|
Заблокирован
|
|
| 21.03.2014, 12:34 | |
|
ИМХО вопросы у вас возникнут непременно, потому что теоретически все верно, а на практике иногда берет и не работает.
Кроме того, при сложных задачах вопросы неизбежны. Вот я сейчас написала код, который должен обновлять записи в таблице БД, выбранной пользователем. То есть структура таблицы заранее неизвестна. Компилируется. С некоторыми таблицами работает. А с другими выбрасывает ошибку. Хотя ничего криминального в них нет. А код один и тот же, понимаете? Даже экзешник один и тот же.
1
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 21.03.2014, 14:03 | ||
|
0
|
||
|
Заблокирован
|
|
| 21.03.2014, 14:09 | |
|
""Антинаучнее подхода я не видел. "
Меня не интересуют ваше мнение и ваш опыт. Конечно, это мы быдлокодеры пишем динамические запросы к БД, а крутые профи вроде вас работают исключительно с БД об одной таблице, в которой 3 поля и не более 10 записей, типа CREATE TABLE Студенты ( КодСтудента INT(10), Имя VARCHAR(255), Фамилия VARCHAR(255)), а если добавить еще и отчество или 11-ю запись, вы говорите, что заниматься подобным мракобесием не станете. Приходится нам, говнокодерам....
0
|
|
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
||||||
| 23.03.2014, 17:59 [ТС] | ||||||
|
При сохранении ошибка:
0
|
||||||
|
|
||||||||
| 24.03.2014, 00:31 | ||||||||
Добавлено через 1 минуту
1
|
||||||||
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
||||||
| 24.03.2014, 02:04 [ТС] | ||||||
|
nio, задал ключевое поле.
Теперь такая ошибка:
Но если обновлять ключевое поле, то обновляется, а если остальные данная ошибка. Как можно исправить?
0
|
||||||
|
Заблокирован
|
||||||||||||||||||||||||||
| 24.03.2014, 12:03 | ||||||||||||||||||||||||||
|
Чтобы делать UPDATE, надо осторожно обращаться с ключевым полем.
1. Оно необходимо. 2. Но надо избегать его обновления. 3. И его пустых значений в датасете, датагридах, текстбоксе или нумерикапдауне для него и т.д. тоже надо избегать. Я делаю так. Если запрос UPDATE создается вручную - перечисляю только нужные поля, а поле id не включаю в запрос либо упоминаю только после WHERE (например, WHERE ID=56) Если автоматически - вставляю условие, например, если имя поля !="id"... и т.д. Если параметры создаются циклом со счетчиком, можно начинать счет не с нуля, а с 1. ведь ключевое поле обычно нулевое по счету. Но автоматические штучки не люблю, ненадежные они. На тестовой базе данных могут работать, а на реальной после ее очередной реструктуризации - нет. У меня был жуткий случай, где экзешник корректно работал с таблицей базы данных, которая называлась "темп", но выдавал ошибку при любой попытке ее переименовать, хотя имя таблицы в коде не упоминалось и ее вообще выбирали из списка таблиц в вЫБРАННОЙ ПОЛЬЗОВАТЕЛЕМ ПРОИЗВОЛЬНОЙ БД))))))))) Добавлено через 20 минут Я тут подумала: мож поможет вот это? (это мое учебное упражнение по образцу, который я нашла в интернете и который, как всегда, пришлось подкорректировать) Итак, база данных dbTest.mdb
Класс Description.cs - записи этой таблицы соответствуют объектам этого класса и могут записываться в них и считываться ими
- он и содержит основные методы работы с базами данных
Закомментированы строки, которые не работают
1
|
||||||||||||||||||||||||||
| 24.03.2014, 12:03 | |
|
Помогаю со студенческими работами здесь
20
Работа с БД MS Access Работа с Access Работа с БД в Access
Работа с Access Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|