Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/76: Рейтинг темы: голосов - 76, средняя оценка - 4.55
9 / 9 / 1
Регистрация: 20.12.2010
Сообщений: 192
1

Открытие соединения с БД SQL выдает ошибку

15.01.2012, 17:56. Показов 15096. Ответов 50
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Товарищи, помогите плиз!

Попробовал в АСП сделать то же что я делаю в Винформс, но увы не получается, выдает следующее исключение

Тест ошибки
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at WebApplication3.Default.Button1_Click(Object sender, EventArgs e) in c:\users\артур\documents\visual studio 2010\Projects\WebApplication3\WebApplication3\Default.aspx.cs:line 29




Вкратце разъясню.
Я пытаюсь выполнить событие повешенное на клик кнопки (асп контрола).
Схема проста, на странице находиться 2 текстбокса с именами txbx_login и txbx_pass а так же кнопка и 3-й тексарея (text_rezultat), который должен отражать события при правильном или неправильном доступе.
Далее нижеследующий код на событие КЛИКА кнопки

Текст программы
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
try
            {
                string login = txbx_login.Text;
                string pass = txbx_pass.Text;
                string con = "Database=testDB; Data Source=localhost; User Id=; Password=";
                SqlConnection myCon = new SqlConnection(con);
                SqlCommand myCommand = new SqlCommand();
                myCon.Open();
                myCommand.Connection = myCon;
                myCommand.CommandText = string.Format("SELECT login FROM workers WHERE login='{0}' AND password='{1}'", login, pass);
                myCommand.Prepare();
                myCommand.ExecuteNonQuery();
                string rezultat = (string)myCommand.ExecuteScalar();
                if (rezultat == login)      
                {
                               
                   text_rezultat.Value = "Ура все получилось к базе доступ разрешен";
 
                }
 
                else
                {
 
                  text_rezultat.Value = "Нихера не получилось";
 
                }
 
                myCon.Close();
            }
            catch (Exception ee)
            {
                text_rezultat.Value =Convert.ToString(ee);
            }




Не могу понять что происходит, и базу подцепил в SQL data source и менял разные базы.
Выдает эту ошибку на строке
C#
1
myCon.Open();
 Комментарий модератора 
Большие участки кода и текста желательно сворачивать в елемент вставки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2012, 17:56
Ответы с готовыми решениями:

Повторное открытие формы выдает ошибку доступа к ликвидированному объекту
Добрый вечер всем! Раньше я работал в C++ Builder и использовал метод Close() для своих форм....

SQL ошибку выдает
Dim strSql As String strSql = "update request set = " & numberOfRequest & "#" &...

SQL.Delphi. Выдает ошибку
procedure TForm1.Button17Click(Sender: TObject); begin frmdm.ADOQuery1.SQL.Text:='Insert Into...

Подключение к SQL Server выдает ошибку
Раньше все хранилось в бд Access, работало идеально. теперь переходим на SQL Server и сразу...

50
9 / 9 / 1
Регистрация: 20.12.2010
Сообщений: 192
21.01.2012, 14:29  [ТС] 41
Author24 — интернет-сервис помощи студентам
Удалил из строки все равно
Ошибка входа пользователя ""
.
0
40 / 40 / 3
Регистрация: 08.01.2012
Сообщений: 96
21.01.2012, 14:56 42
Если используете Win авторизацию, попробуйте добавить с троку:

XML
1
Trusted_Connection=True;
1
9 / 9 / 1
Регистрация: 20.12.2010
Сообщений: 192
21.01.2012, 15:07  [ТС] 43
Урааааааааааааааааааааааааааааааааа

Спасибо господа! трастед конекшен реально помогло!!!!

Все вношу всю инфу в эвринот, от греха подальше!!!!
0
9 / 9 / 1
Регистрация: 20.12.2010
Сообщений: 192
07.02.2012, 13:09  [ТС] 44
ребят, вы меня конечно простите, "инвалида ума", но я так больше не могу!

Я вынужден вернуться к данной теме в связи с тем что она не является для меня закрытой на сегодняшний день!
Точнее закрыта она частично как-то, а по большому счету нифига не закрыта.

Как вы помните, ранее я отписал, что при ручном прописывании в строку подключения предложенную господином slawek фразы Trusted_Connection=True; соединение не артачилось и выполняло поставленную в выше описываемом коде задачу.

Однако тупость заключается в том, что при попытке наладить аутентификацию по средствам АСП.НЕТ, я столкнулся таки с этой проблемой опять. И столкнулся уже в aspnet_regsql.exe, он напрочь отказывался соединяться с любой предложенной ему БД, созданной в режиме SQL менеджмент студии или VS 2010.
При этом выдавая ту же проблему - ссылается на отсутствующий экземпляр или подключение.

Меня это взбесило жутко, я пошел и установил на второй комп XP и заново поставил MS SQL 2008 Express и Вижуал Студию 2010. В итоге получил тоже самое.
При этом галочка "разрешить удаленные подключения" в свойствах сервера установлена.

Я как-то понять не могу, неужели я сталкиваюсь с такими проблемами по умолчанию. Я что установку СКУЛ не так делаю, хотя вроде с этого форума взята из FAQa Бурундука.

Почему эта дура не хочет дружить со мной или может моя голова не хочет дружить со мной. В общем в том или другом случае надо разобраться, где источник проблем и избавиться от него раз и навсегда.

Может мне кто-то перечислит свои рабочие настройки, во всевозможных местах настройки SQL Express и IIS.
Я реально стою на месте....решения так и нет. Все книги, и мануалы прокурены до дыр.
0
40 / 40 / 3
Регистрация: 08.01.2012
Сообщений: 96
07.02.2012, 14:14 45
Я писал выше, при установке MSSQL Express, всегда указываю "default instance" или называю его "MSSQLSERVER". Что в общем, одно и то же.
http://support.microsoft.com/kb/958778
Это вам даст возможность в критическом случае, обращаться даже по IP адресу.
Так же, при установке выбираю - Authentication Mode - mixed, создаете пароль для sa пользователя.
XML
1
Data Source=сервер;Initial Catalog=имя базы;User ID=sa;Password=пароль;
0
9 / 9 / 1
Регистрация: 20.12.2010
Сообщений: 192
07.02.2012, 15:36  [ТС] 46
Я так понимаю, сейчас не вернуть уже тех возможностей настройки, которые давались при инсталяции.
Сегодня снесу ее к чертовой бабушке, прибегну к вашему совету, установлю обновление. Дальше будем смотреть!
0
40 / 40 / 3
Регистрация: 08.01.2012
Сообщений: 96
07.02.2012, 15:51 47
Вполне возможно, что можно. Запустить установку заново, и там есть Instance Configuration.
Но если нет важных данных в базе, из личного опыта проще будет установить заново.

Еще дополнение, если к базе будет доступ из интернета, после всех шагов, создайте нового пользователя, с правами sa. Иначе, инет кишит всяким ботами, которые будут подбирать пароль для sa, и после какой то неудачной попытки, sa будет заблокирован.
Но это уже вопрос безопасности. Лучше без необходимости вообще не открывать доступ к базе извне.
1
9 / 9 / 1
Регистрация: 20.12.2010
Сообщений: 192
08.02.2012, 08:28  [ТС] 48
да в том то и дело, что база нужна чисто на локалке, для разработки и отладки процессов. Доступ извне мне совсем не нужен. Работаю с одного компа. По сути удаленное подключение с другого компа так же мне не нужно.

База данных чиста (только установлена), поэтому наверное действительно проще снести и установить заново с рекомендуемыми настройками.

Если и тогда перестанет работать!!! Придется ставить хорошенькай пузырь, чтобы показали где у меня "дырка в голове"!

Добавлено через 16 часов 0 минут
Итак, вчера проводил контрольные испытания и запуск в очередной раз, свежеустановленной MSSQL.

Проблема как, мне показалось, действительно крылась в каком-то косяке с названием экземпляра и работой с ним самой СУБД.
После совета slawek-а установил по его ссылке патч MSSQL до SP3 вроде все отлично! Коннектиться на ура.

Как оказалось, проблема известная, читайте тут.
slawek-у еще раз спасибо за помощь, он прекратил мучения моего головного мозга, четким выстрелом правильной ссылки.


P.S. Кстати говоря насчет рекомендуемых настроек, в частности установка имени экземпляра по умолчанию, у меня было все ок, что подтверждает описанную багу майкрософтами.
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
08.02.2012, 11:34 49
каком-то косяке с названием экземпляра
- это не страшный косяк, он заключается лишь в неверном обозначении имени экземпляра - MSSQLEXPRESS вместо MSSQLSERVER, но для работы с сервером это без разницы, просто нужно правильно указывать имя в строке подключения.
Что касается работы aspnet_regsql.exe, то там так же нужно выбрать "правильный" сервер.
0
9 / 9 / 1
Регистрация: 20.12.2010
Сообщений: 192
08.02.2012, 11:57  [ТС] 50
Ну теперь-то господа, я съел жирную сочную и через чур калорийную собаку на этом вопросе.

С гордостью могу сказать что мною тема "запомнилась как отче наш".

Еще раз благодарствую.
0
nio
08.02.2012, 12:10     Открытие соединения с БД SQL выдает ошибку
  #51

Не по теме:

Цитата Сообщение от Zilberman Посмотреть сообщение
Ну теперь-то господа, я съел жирную сочную и через чур калорийную собаку на этом вопросе.
С гордостью могу сказать что...
стал настоящим вьетнамцем :D

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2012, 12:10

Анализатор SQL выдает синтаксическую ошибку
UPDATE Projects SET projName = проба, customer = я, executer = я, manager = 1, start = 01.06.2012,...

SQL запрос по промежутку времени выдает ошибку...
У меня есть следуюшая строка: rs.Open 'SELECT * FROM Stats Where Dt Between '05.09.01' And...

Как записать SQL в ADOQuery? Выдает ошибку
Делаю кнопку с выборкой по месяцу. В Edit пишем номер месяца, а в таблице выводит людей с датой...

Как записать SQL в ADOQuery? Выдает ошибку
Делаю кнопку, которая делает выборку из запроса БД ACCESS по номеру месяца в дате рождения. При...


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

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru