|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Доброго времени суток! Мой вопрос, наверное, многим покажется глупым, но прошу проявить терпение к новичку. Я начинающий разработчик, опыта пока слишком мало. Очень нужно подключиться из программы на С# к БД Oracle, но нигде не могу найти информации, как это сделать... Может кто-нибудь предложить простой и, главное, полный пример? Подключение, чтение из БД и запись в нее. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2012, 22:11 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
tociacla, Например (чтение сделано на скорую руку, наверняка можно умнее): Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 11:10 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstraction, огромное спасибо! Буду разбираться. А объясните еще пожалуйста: как происходит соединение на физическом уровне? Т.е. а) когда я пишу БД в Oracle, где именно создаются файлы этой БД, как они называются? б) когда происходит соединение, каким именно образом Visual Studio находит эти самые файлы? в) необходимо ли копировать файлы базы данных в папку с программой? г) если в конечном итоге требуется передать программу другому пользователю, то следует ли скопировать файлы БД? при каких условия другой пользователь сможет, запустив программу, успешно работать через эту программу с базой данных? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 14:57 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
tociaclaAbstraction, огромное спасибо! Буду разбираться. А объясните еще пожалуйста: как происходит соединение на физическом уровне? Т.е. а) когда я пишу БД в Oracle, где именно создаются файлы этой БД, как они называются? б) когда происходит соединение, каким именно образом Visual Studio находит эти самые файлы? в) необходимо ли копировать файлы базы данных в папку с программой? г) если в конечном итоге требуется передать программу другому пользователю, то следует ли скопировать файлы БД? при каких условия другой пользователь сможет, запустив программу, успешно работать через эту программу с базой данных? Спасибо! Ой. а) Там, куда поставили Oracle. Называются так, как сочтёт нужным Oracle. б) Когда происходит соединение, Visual Studio категорически не при делах. Более того, написанная клиентская программа тоже категорически не при делах. Есть сервис Oracle, он слушает запросы и сам разбирается, чего с ними дальше делать. То, что Вы этого не понимаете, как минимум странно. в,г) То, что написано, опирается на сборку Oracle.DataAccess. Для работы достаточно установки соответствующей версии Oracle Client на машину пользователя и наличия (правильной версии!) Oracle.DataAccess.dll в папке с программой. Лично у меня попытки ослабить эти требования до установки у клиента только Instant Client с треском провалились. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 15:06 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
AbstractionТо, что Вы этого не понимаете, как минимум странно Согласен. В глазах профессионалов я выгляжу идиотом. Но оправдываться бессмысленно, т.к. я уже сказал, что новичок. Abstractionналичия (правильной версии!) Oracle.DataAccess.dll в папке с программой Что имеется в виду? Какой файл можно считать правильным и где его взять? Извините за дебильные вопросы... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 15:14 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
tociaclaЧто имеется в виду? Какой файл можно считать правильным и где его взять? Извините за дебильные вопросы... ODAC (Oracle Data Access Components) для Вашей версии Oracle. Брать с сайта Oracle. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 15:18 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstraction, спасибо за терпение! Буду разбираться ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 15:21 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstraction, добрый день! Пожалуйста, скажите еще: переменной fields нужно самому присвоить значение или, как и listener, login, password, host, port, взять из какого-то оракловского файла? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2012, 21:56 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Ведь по сути дела fields - это формальный параметр метода QueryData. Я не понимаю, что передавать этому методу при вызове ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2012, 05:53 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
tociacla, Нет, из оракловских файлов ничего брать не надо. listener, login, password, host, port - это параметры Вашей БД. fields - названия полей; скажем, Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2012, 10:39 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstraction, метод QueryData взял у Вас без изменений. Далее вызываю метод при загрузке формы и пытаюсь отобразить результат запроса в dataGridView: Код: c# 1. 2. 3. 4. 5. 6.
В итоге получаю нечто странное: Можете объяснить, откуда это нечто? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2012, 19:14 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
И как сделать так, чтобы отображались столбцы из моей базы данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2012, 19:15 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
tociacla, А это DataGridView в действии. Компонент видит, что ему передали набор объектов (List<string[]>). Он берёт объекты (типа string[]), ищет у них публичные свойства, по названиям этих свойств именует столбцы и отображает по объекту в строке. В данном случае каждый объект - это string[] с Length=14 (т.е. в массиве 14 полей), Rank=1 (массив, натурально, одномерный), IsReadOnly=false и т.д. Как сделать - вопрос интересный. Когда мне надо было отображать данные в dataGridView, я создавал специальный класс, с нужными мне публичными полями и передавал ему список элементов этого класса (заодно и сортировку по столбцам делал). Но, как понимаю, теоретически DataGridView может отображать данные из БД "напрямую". Как? - не знаю, у меня ничего путного (с Oracle, во всяком случае) не получилось. С другой стороны, не особенно и копал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2012, 00:06 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Я, похоже, могу вывести результат запроса в dataGridView при помощи конструктора и адаптера таблиц.... Но считаю, что лучше самому писать код. К тому же мне нужно будет еще и записывать потом в базу данных значения, введенные и dataGridView. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2012, 06:22 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstraction, не могли бы Вы привести пример класса, о котором писали? Спасибо! Модератор: Тема перенесена из форума "Программирование". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2012, 06:26 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
tociacla, Например: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В dataGridViewPeople появятся записи со столбцами "Name", "Date" и "Comment". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2012, 11:56 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstraction, Пользуясь случаем хочу спросить, вот это http://msdn.microsoft.com/ru-ru/library/system.data.oracleclient.aspx уже совсем устаревшее г-но мамонта и его не стоит использовать даже в простейших случаях или еще на что-то сгодится? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2012, 12:39 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Lexxxxx, Если честно, понятия не имею. Попытка наладить нормальный контакт с БД Oracle сопровождалась достаточно большим количеством гипотез "какого лешего этот вариант не работает", по сию пору не знаю, какие из них были правильными. Поскольку задача была в общем-то второстепенной, то первый рабочий вариант (который передаёт данные и с разумным количеством геморроя переносится на другую машину) меня устроил. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2012, 12:50 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstractiontociacla, Например: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В dataGridViewPeople появятся записи со столбцами "Name", "Date" и "Comment". Abstraction, не появилось... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2012, 15:07 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Abstraction, Все работает. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2012, 10:17 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2012, 10:33 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
pyroman69, Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2012, 21:51 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
Могли бы вы ответить на несколько вопросов: 1. Насколько целесообразно использовать Код: c# 1. 2.
вместо Код: c# 1.
2. Можно ли отдельно скачать одну библиотеку Oracle.DataAccess.Client?; 3. Я скачал с сайта Oracle ODAC112012. Я не вижу в составе дистрибутива Oracle.DataAccess.dll спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2012, 20:46 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
наш человек в гаванеМогли бы вы ответить на несколько вопросов: 1. Насколько целесообразно использовать Код: c# 1. 2.
вместо Код: c# 1.
Если Вы про вот это Oracle Data Provider for .NET, Managed Driver Beta 11.2.0.3.50 , то по состоянию на сейчас разве что для ознакомительных и тестовых целей: beta - и этим все сказано... А у Oracle даже релизы содержат много мелких, но достаточно некомфортных багов... наш человек в гаване2. Можно ли отдельно скачать одну библиотеку Oracle.DataAccess.Client?; А смысл? Без инстант клиента все равно не будет работать... Если просто не хочется качать и устанавливать "полного клиента", всегда можно скачать "xcopy-deployment" комплект - его можно разворачивать вместе с приложением. наш человек в гаване3. Я скачал с сайта Oracle ODAC112012. Я не вижу в составе дистрибутива Oracle.DataAccess.dll спасибо!Во-первых, чего такую "древнюю" версию используете? "На сейчас" актуальна версия ODAC1120320 - на релиза на 3 "по-свежее" будет... Во-вторых, если Вам нужна (по каким-то причинам) конкретно эта dll-ка, скачайте "xcopy-deployment" - в полученом архиве есть подкаталоги odp.net20 и odp.net4 - там есть... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2012, 00:15 |
|
Подключение к БД Oracle из программы на С#
|
|||
---|---|---|---|
#18+
sphinx_mv , спасибо за развёрнутый ответ! Скачал и установил клиента с ODP.NET Создаю в C# windows forms приложение для работы с БД Oracle. Подключил Oracle DataAccess в References. На форме создал кнопку и метку. Идея проста: нажать на кнопку и по событию нажатия на кнопку вывести результат в метку. Вот код: Код: 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.
В результате запуска получаю ошибку Oracle.DataAccess.Client.OracleException ORA-00911: неверный символ: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
подскажите, как нужно правильно написать? спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2012, 14:17 |
|
|
start [/forum/topic.php?fid=20&msg=37749495&tid=1405600]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 19ms |
total: | 167ms |
0 / 0 |