Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/121: Рейтинг темы: голосов - 121, средняя оценка - 4.75
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315

Подключение к sql базе

06.10.2010, 20:15. Показов 25087. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем дело такое: нужно подключиться к базе данных sql(создана в sql server 2008) и управлять ей, создавал тему про то как подрубаться к acess-й базе
https://www.cyberforum.ru/csharp-beginners/thread155504.html?uri=/csharp-beginners/thread155504.html

в принципе тот пример работает, но:
наверно есть специальные средства .net для работы с sql-й базой и sql server-м, хотелось бы примерчик увидеть
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2010, 20:15
Ответы с готовыми решениями:

Подключение к SQL базе
Привет, ребята! Вот какая задача. Есть сайт с SQL базой данных. Нужен скрипт, кторый будет проверять всязь с БД и если связь...

Подключение к sql базе
как убрать эту ошибку?

Подключение к базе MS SQL
Доброго времени суток! У меня есть VPS сервер на linux, вот phpinfo ссылка. Нужно подключиться к базе, которая находиться на другом...

20
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
06.10.2010, 22:45
смысловая разница только в провайдере.код точно такой же, можно просто заменить классы. если есть желание,можно использовать не oledb/odbc классы, а классы пространства имен sqlclient
http://msdn.microsoft.com/ru-r... lient.aspx
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
07.10.2010, 06:30  [ТС]
то есть если делать через классы пространства имен sqlclient то код же меньше получится? для подключения можно использовать SqlConnection да? можно небольшой примерчик?
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
07.10.2010, 15:30
эм, код меньше не будет)он будет один в один, просто классы другие)
я к sql серверу коннекчусь так:

C#
1
2
3
4
5
6
7
8
9
10
11
using (OleDbConnection cn = new OleDbConnection("@"Provider=SQLOLEDB;Data Source=" + server + ";Initial Catalog=" + db + ";Integrated Security=SSPI;""))
                {
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }
                    OleDbDataAdapter adapter = new OleDbDataAdapter();
                    adapter.SelectCommand = new OleDbCommand("select * from archive", cn);
                    ds = new DataSet();
                    adapter.Fill(ds);
                }
1
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
07.10.2010, 16:57
Цитата Сообщение от 23Alex24 Посмотреть сообщение
наверно есть специальные средства .net для работы с sql-й базой и sql server-м, хотелось бы примерчик увидеть
Изучай "ADO.Net" (например автора Сеппа Д.)
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
07.10.2010, 21:49  [ТС]
а как сделать через sqlclient?

Добавлено через 56 секунд
Цитата Сообщение от nio Посмотреть сообщение
Изучай "ADO.Net" (например автора Сеппа Д.)
У меня нет к сожалению времени на это пока, приходится по конкретным вопросам спрашивать


Плз код который выложил прокоменть
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
08.10.2010, 12:15
23Alex24, не грузя тебя разницами в данных технологиях доступа к данным, попытаюс тебе сначала объяснить:
коды подключения как для sqlclient, так и для oledb/odbc абсолютно одинаковые. ты уже узучил код для акса. для sql сервера все тоже самое. разница только в именах классов. логика не меняется. как было сказанов выше, кури ado.net. каждая из этих технологий имеет кое какие более удобные для работы с определенными базами классы.

остановимся на sqlclient

C#
1
2
3
4
5
6
7
8
9
10
11
using (SqlConnection cn = new SqlConnection("Provider=SQLOLEDB;Data Source=" + server + ";Initial Catalog=" + db + ";Integrated Security=SSPI;")) // юзинг для того, чтобы подключение в случае проблемы закрылось. тут создается подключение. ключевая строка - это строка подключения, главное тут - провайдер. провайдер - это ключевая разница в подключениях
                {
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();//если соединение закрыто - октрыть
                    }
                    SqlDataAdapter adapter = new SqlDataAdapter(); //создаем адаптер для связи с данными. 
                    adapter.SelectCommand = new SqlCommand("select * from archive", cn); // указываем ему команду для выборки
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);//заполняем датасет с помощьб адаптера (будет исполнена команда на выборку)
                }
а теперь посмотрим на oledb

C#
1
2
3
4
5
6
7
8
9
10
11
using (OleDbConnection cn = new OleDbConnection("Provider=SQLOLEDB;Data Source=" + server + ";Initial Catalog=" + db + ";Integrated Security=SSPI;"))
                {
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }
                    OleDbDataAdapter adapter = new OleDbDataAdapter();
                    adapter.SelectCommand = new OleDbCommand("select * from archive", cn);
                    ds = new DataSet();
                    adapter.Fill(ds);
                }
зато разница видна вот тут.
http://msdn.microsoft.com/ru-r... lient.aspx
http://msdn.microsoft.com/ru-r... S.90).aspx
http://msdn.microsoft.com/ru-r... S.90).aspx
но критичной эту разницу не назовешь.
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
08.10.2010, 16:32  [ТС]
Хм, не думал что подключения так похожи,просто я думал если sql server и visual studio оба майкрософтовские и вроде скл сервер даже может как то с ним взаимодействовать то работать с базой было бы проще, но видимо разницы нет да?

немножко не догнал на счет првайдера и датасета:
провайдер в данном случае какую роль несет?
датасет Представляет расположенные в памяти кэш данные. да? то есть мы засовываем в кэш наш запрос,или не так понял?


и здесь мы что указываем:

C#
1
using (OleDbConnection cn = new OleDbConnection("Provider=SQLOLEDB;Data Source=" + server + ";Initial Catalog=" + db + ";Integrated Security=SSPI;"))
Provider -ясно мы обозначаем провайдер, а дата сорс это что получается? и интегрэйтед секьюрити?

Добавлено через 28 минут
db это название базы данных да?
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
08.10.2010, 18:48
провайдер - это указатель на драйвер, который будет обслуживать твое подключение.
dataset - http://msdn.microsoft.com/ru-r... taset.aspx
да, можно и так сказать про запрос в кеше


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

почитай про connectionstring)
http://www.connectionstrings.com/
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
08.10.2010, 19:17  [ТС]
ага, понятно, а вот такой вопросик:
я же могу в принципе при запуске проги открывать соединение с базой и потом в конце всех манипуляций только закрывать соединение да? т.е не нужно его закрывать после каждого выполненного запроса так?

И еще одно, можно ведь адаптор и датасет объявить как глобальные в проге и в нужных местах просто выполнять
C#
1
2
adapter.SelectCommand = new OleDbCommand("select * from archive", cn);
adapter.Fill(ds);
так прокатит?)
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
08.10.2010, 20:34
Цитата Сообщение от 23Alex24 Посмотреть сообщение
ага, понятно, а вот такой вопросик:
я же могу в принципе при запуске проги открывать соединение с базой и потом в конце всех манипуляций только закрывать соединение да? т.е не нужно его закрывать после каждого выполненного запроса так?
этот вопрос вы сами должны для себя решить)да то да, но тут надо подумать, чем это может грозить вашей базе, если она многопользовательская, например.какова вероятность, что что-то сломается до момента закрытия ну и т.п.)

Цитата Сообщение от 23Alex24 Посмотреть сообщение
И еще одно, можно ведь адаптор и датасет объявить как глобальные в проге и в нужных местах просто выполнять
C#
1
2
adapter.SelectCommand = new OleDbCommand("select * from archive", cn);
adapter.Fill(ds);
так прокатит?)
конечно)
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
09.10.2010, 09:27  [ТС]
Огромнейшее спасибо, буду мудрить) база однопользовательская )

Добавлено через 12 часов 20 минут
А как мне прописывать имя сервера ???
когда запускаю sql server у меня там имя сервера(локального)-ALEX\SQLEXPRESS
в вижуал студии ввожу:
C#
1
2
3
static string bd = Application.StartupPath + "\\Taxi.mdf";
       static string server="ALEX\\SQLEXPRESS";
       OleDbConnection DataBaseConnection = new OleDbConnection("Provider=SQLOLEDB;Data Source=" + server + ";Initial Catalog=" + bd + ";Integrated Security=SSPI;");
когда запускаю выдает ошибку:

Не удается открыть базу данных "D:\Мои документы\Visual Studio 2008\Projects\С#\БД\1\BDLabaFour\BDLabaF our\bin\Debug\Taxi.mdf", запрашиваемую именем входа. Не удалось выполнить вход.

Добавлено через 25 минут
если пишу так:
C#
1
OleDbConnection DataBaseConnection = new OleDbConnection("Provider=SQLOLEDB;Data Source=" + server + ";Initial Catalog=" + bd + ";Trusted_Connection=True;");
то он ругается Ошибка входа пользователя "Леха". на строку DataBaseConnection.Open();
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
09.10.2010, 13:18
попробуйте напрямую прописать логин/пароль.я ж не знаю,как у вас база настроена)на учетку или на логин-пароль. User Id=myUsername;Password=myPassword;

http://www.connectionstrings.c... g-keywords
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
09.10.2010, 16:04  [ТС]
База натроена на учетку, то есть я при заходе в sql server просто нажимаю подключиться, там уже вбито имя сервера и проверка подлинности виндоус стоит логин и пароль серые логин забит а пароль там пустой

Добавлено через 7 минут
и у меня нет логина и пароля получается)
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
09.10.2010, 16:05
сначала как-то не обратила внимание, как бд вы должны указывать базу в каталогах самого сервера. не знаю, через что админите базы, мб через management studio, ну в любом случае где-то вы должны видеть список ваших баз.в общем, в параметре Data Source= должно быть просто название базы в иерархии сервера. т.е. taxi, например (или как она у вас называется),а не прямой путь к файлу
0
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
09.10.2010, 16:16  [ТС]
ААА, щас попробую)

Добавлено через 1 минуту
Не удается открыть базу данных "Taxi.mdf", запрашиваемую именем входа. Не удалось выполнить вход.
код такой:
C#
1
2
OleDbConnection DataBaseConnection = new OleDbConnection("Provider=SQLOLEDB;Data Source=" + server + ";Initial Catalog=" + "Taxi.mdf" + ";Integrated Security=SSPI;");
 DataBaseConnection.Open();
Добавлено через 4 минуты
а как я э тогда допустим буду подключаться к базе в которой которой несколько экземпляров и она разная? не пойму чето

Добавлено через 5 минут
если пишу так: OleDbConnection DataBaseConnection = new OleDbConnection("Provider=SQLOLEDBata Source=+ bd + "+";Integrated Security=SSPI;");

то выдает такую ошибку:[DBNETLIB][ConnectionOpen (Connect()).]SQL-сервер не существует, или отсутствует доступ.
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
09.10.2010, 16:37
хех, по пунктам:
обязательные элементы строки подключения:
провайдер - драйвер, который укажет, как связаться с севрером
Data Source - имя сервера, к которому идет коннект
Initial Catalog - имя (в одно слово) бд на сервере
[способ подключения к базе] - логин/пароль - учетка - ни того,ни другого

у сервера своя иерархия представления объектов. ему не важно, что база mdf/mdb/dbf и тп. то есть важно, конечно, но вес эти обращения спрятаны глубоко в нутра сервера, и юзер копать в ту сторону не должен

строка подключения должна выглядеть так

C#
1
OleDbConnection DataBaseConnection = new OleDbConnection("Provider=SQLOLEDB;Data Source=ALEX\\SQLEXPRESS;Initial Catalog=Taxi;Integrated Security=SSPI;");

Не по теме:

ей богу,без обид, не ленитесь, учите матчасть)за все то время, что мы тут это все обсуждали, можно уже было полкниги по ado.net освоить))

1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
09.10.2010, 16:40  [ТС]
Но в этом случае я буду изменять только базу данных настоящюю а не какую то ее копию так? а можно как то не указывая сервера полный каталог файла добавить или так нельзя?

Добавлено через 14 секунд
кстати мдф убрал убралась ошибка)

Добавлено через 31 секунду
а в книге эти вопросы написаны?)
0
 Аватар для Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
09.10.2010, 16:41
этих вопросов просто не было бы)

про каталоги-сервер - это как?зачем тогда вообще сервер?сервер существует для того, чтобы не копировать всем и каждому локальную базку. для сервера вообще не должно быть применимо понятие "каталог файла", на то он и сервер
1
644 / 198 / 5
Регистрация: 24.07.2010
Сообщений: 1,315
09.10.2010, 16:42  [ТС]
ок,спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.10.2010, 16:42
Помогаю со студенческими работами здесь

Подключение к базе SQL CE
В обработчике ashx: SqlCeConnection connect = new SqlCeConnection("Data Source= test.sdf;");Компилятор ругается на отсутствие фаила. Как...

Подключение к базе SQL Express
Всем привет только начал изучать Java и столкнулся с проблемой подключения к серверу. Сервер по моему представлению настроен. П.С. все...

Подключение к базе данных MS SQL
Всем доброго времени суток! Есть задача: брать данные из java-приложения, записывать их в базу MS SQL и, при необходимости, извлекать...

Подключение к Базе Данных MS SQL
Всем привет! Нужно подключиться к серверу MS SQL. Опытные программисты, подскажите, каким образом или какими инструментами...

Подключение к базе VB+SQL Server
Раньше я писал программы на VB+SQL Server, а сейчас пробую на ASP. Подскажите нормальное ли это явление. Обычные программы при запуске...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru