Ошибка подключения к серверу Microsoft SQL

1

Ниже приведен краткий вариант моего кода, так как он относится к доступу db.

using System;
using System.Collections.Generic;
using System.Data.SqlClient;

namespace DataAccess
{
   public class DbConnection
{
    public string connString = "Data Source=[Insert IP];Initial Catalog=MOSAIQ;Persist Security Info=True;User ID=[Insert User];Password=[Insert Password]";

    public void CreateConnection()
    {
        using (SqlConnection conn = new SqlConnection(connString))
        {
            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    }
}

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

При выполнении этого кода при выполнении conn.Open() Изображение 174551 происходит ошибка:

Кажется довольно очевидным, что во время проверки есть проблема. Предоставляемые учетные данные - это те, которые используются для проверки подлинности SQL.

Почему я могу подключиться через серверный проводник, но не напрямую через мой код? Что делает Visual Studio для меня, что я, похоже, не могу сделать сам?

Порты открыты, брандмауэр не является проблемой. Я в тупике, и как новобранец в этом вопросе был бы признателен за дальнейшие указания.

Я пытаюсь подключиться к SQL Server 2008 R2, используя Visual Studio 2013.

  • 0
    SQL Server какой? Enterprise? Экспресс? Компактный?
  • 0
    Это может помочь: ricardodsanchez.com/2012/04/05/… но сначала убедитесь, что ваш SQL-сервер размещен под IP 1.1.1.1 - кажется необычным.
Показать ещё 4 комментария
Теги:
sql-server

2 ответа

0

Для тех, кто может столкнуться с подобными проблемами. Я сохраняю свои решения на сетевом диске через работу. Поскольку я открывал и запускал свое решение из этого сетевого местоположения по той причине, о которой я еще не знал, он использовал мои учетные данные Windows вместо учетных данных SQL, которые я передавал на SQL-сервер. После того как решение было перенесено на мою локальную рабочую станцию, метод работал так, как ожидалось. Любое понимание того, что более конкретно происходит, будет представлять интерес.

0

В качестве теста попробуйте использовать SqlConnectionStringBuilder

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
//Or Supply User and Password
builder["Connect Timeout"] = 1000;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
Console.WriteLine(builder.ConnectionString); 

Если вы это сделаете и все еще испытываете ошибку, переходите к тестированию сети.

<add name="RM_V1.0CS1" connectionString="Data Source=SERVER;Initial Catalog=DB;User ID=sa;Password=Password" providerName="System.Data.SqlClient" />

Изменить явно установленный провайдер:

  • 0
    Преимущество использования класса SqlConnectionStringBuilder для правильного размещения строго типизированных свойств, просто для моих собственных знаний в изучении C # Просто пытаясь следовать логике, что, возможно, способ анализа текущей строки соединения может быть проблемой? Печатая вслух, я думаю, тогда будет иметь смысл, что этот класс попытается устранить эту потенциальную ошибку.
  • 0
    При использовании 'SqlConnection' какой поставщик по умолчанию используется? Когда я посмотрел на дополнительные свойства моего установленного соединения с помощью обозревателя сервера, он показывает «Provider = SQLNCLI11», я надеялся проверить это, поскольку это не поле, которое я могу указать в строке подключения при использовании «SqlConnection»
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню