|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.05.2012, 16:24 | #1 |
Регистрация: 24.04.2012
Сообщений: 6
|
SQL запрос к подключенной БД.
Создал БД на SQL server, подключил к проекту как источник данных. Создал на форме таблицу. Как к этой таблице выполнить SQL запрос, например по нажатию кнопки?
|
16.05.2012, 16:43 | #2 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 722
|
Код:
|
16.05.2012, 17:08 | #3 |
Регистрация: 24.04.2012
Сообщений: 6
|
А путь, что собой должен представлять?
|
16.05.2012, 19:55 | #4 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Прежде, чем делать запросы к БД, надо почитать что-нибудь о базах данных. Во всех источниках в самом начале Вы можете найти, что первое, что надо сделать - это установить связь с БД при помощи строки соединения, например:
string _connectionPath = "Data Source=" + serverName + "; Database=" + dbName + "; User Id=" + dbUserName + "; Password=" + dbUserPass + "; Connect Timeout=15; CharSet=cp1251"; И уж затем делать то, что написал damprink, подставив этот _connectionPath. "Путь" указывается в "Data Source" (иногда это называется "Server", "Srv" и т.д.). Кстати, serverName может содержать IP-адрес сервера, а не только сетевое имя. Если база находится на том же компе, то обычно указывают "localhost" или просто точку: "." Лучше не делать этого в цикле using, т.к. при выходе из него соединение будет разорвано. Вместо этого после одного или серии запросов закрывать соединение: connection.Close() А перед новым запросом открывать его: connection.Open() При этом соединение не разрывается. Это работает гораздо быстрее, чем каждый раз восстанавливать соединение. Но надо не забыть при выходе из приложения и/или по таймауту делать следующее: if ( connection != null ) connection.Dispose(); |
16.05.2012, 20:58 | #5 |
Регистрация: 24.04.2012
Сообщений: 6
|
У меня идет проверка подлинности windows, т.е. логин и пас не ввожу, просто убрать их?
Название сервера у меня выглядит так: USER\SQLEXPRESS Ругается на "\" И если просто без слэша попробовать, пишет что "srv, db" и т.п. не существует в контексте, их как-то инициализировать надо? Последний раз редактировалось -INFERNO-; 16.05.2012 в 21:09. |
16.05.2012, 22:38 | #6 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
После слэша в строке должен быть управляющий символ. Например, "\n" - переход на следующую строку. "S" не является управляющим символом, поэтому компилятор и ругается. Введите двойной слэш: "USER\\SQLEXPRESS" - тогда компилятор воспримет два слэша как один.
Логин и пассворд можно не вводить, только если так настроена СУБД при инсталляции (и то, по-моему, хотя бы один логин без пассворда должен быть). Давно я не работал с SQL Server, да ещё EXPRESS. Поэтому не помню точно, в случае анонимного пользователя в строке соединения вообще не надо указывать User Id (или User, Username) и Password, или указать их пустыми: "...; User=; Password=;..." Попробуйте и так, и эдак. А ещё лучше - почитайте книжку или найдите учебный курс в интернете. Без этого Вы всё равно не обойдётесь. У вас ещё будет столько вопросов, что на них на все не ответит никто. |
17.05.2012, 16:44 | #7 |
Регистрация: 24.04.2012
Сообщений: 6
|
Спасибо.
Вот так подключилось без исключений: Код:
Мне нужно сделать автоинкремент. Проверил опцию на сервере, все работает, но добавляется только при использовании запроса INSERT через подключение: Код:
Последний раз редактировалось -INFERNO-; 17.05.2012 в 23:34. |
18.05.2012, 13:22 | #8 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
У меня несколько таких книг (не обязательно с MS SQL Server), но они все старые, их может уже не быть в продаже, да в них и нет новостей типа AJAX и LINQ. Лучшие из них (разной степени паршивости, но лучше тогда не было):
1) "Программирование для Microsoft .NET", Джеф Просиз - фундаментальная и дорогая. 2) "Программирование на C#", Джесс Либерти - некоторые вопросы рассмотрены подробно, другие совсем отсутствуют. 3) "Визуальное проектирование приложений C#", Фролов А.В., Фролов Г.В. - упор сделан на применение средств автоматизации, существующих в VC. 4) "Visual Studio .NET - разработка приложений баз данных", Анатолий Постолит - эта, пожалуй, лучше других подходит к Вашим проблемам. Лучше сходите на страничку Библио-Глобуса или закиньте в инет общий запрос типа "книги по SQL в Visual Studio". Во многих случаях помогает документация MSDN (с русским языком), встроенного в help VC, доступ к которой осуществляется по клавише F1 (Microsoft Document Explorer). MSDN в полном варианте можно найти в инете и инсталлировать себе добавочно. Успехов! |
18.05.2012, 19:48 | #9 |
Пользователь
Регистрация: 11.04.2011
Сообщений: 46
|
создаешь хранимую процедуру, в которой пишешь sql запрос и вызываешь её из клиентской части! Делается это так:
Код:
|
21.05.2012, 21:44 | #10 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
... и запросившему помощи надо на минуточку изучить, как пишутся процедуры, а для этого надо выучить Transact-SQL, кроме общего языка запросов SQL. Я сам почти всегда пользуюсь хранимыми процедурами и считаю это правильным, но для начинающего это двойная нагрузка. Пусть начинает с передачи серверу ТЕКСТОВОГО SQL-запроса: так, по крайней мере, ему не надо будет сразу углубляться в написание процедур БД и изучатьTransact-SQL или процедурный язык другой СУБД.
myCmd.CommandType = CommandType.Text; И надо прибавить, что приведённый пример - далеко не единственный метод запроса сервера БД. Всё-таки, надо сначала хоть одну, хоть плохую книжку, но прочитать. Последний раз редактировалось Гаврилов; 21.05.2012 в 21:53. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) | Машуля | SQL, базы данных | 4 | 06.05.2010 21:09 |
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi | S_Yevgeniy | Помощь студентам | 1 | 27.10.2009 06:26 |
Перехват движения мыши, подключенной к заданному порту. | Mixasik | Общие вопросы Delphi | 5 | 28.12.2008 18:47 |
SQL запрос на основе другого SQL запрса... | Timoxa | БД в Delphi | 1 | 07.01.2007 18:15 |