Подключение к базе данных SQL Server 2012 в Visual Studio 2008

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

Я могу успешно разрабатывать и развертывать программное обеспечение, однако я не могу подключиться к своей базе данных SQL Server 2012 из Visual Studio 2008. Когда я пытаюсь подключиться из Visual Studio 2017, все работает нормально.

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

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace test_smart_device
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += new EventHandler(button_connect);
        }

        private void button_connect(object sender, EventArgs e)
        {
            string connetionString = null;
            SqlConnection cnn ;
            connetionString = "Data Source=172.16.206.20;Initial Catalog=IBusinessTest;Integrated Security=SSPI;User ID=username;Password=123456";

            cnn = new SqlConnection(connetionString);

            try
            {
                cnn.Open();
                MessageBox.Show ("Connection Open ! ");
                cnn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Can not open connection ! ");
            }
        }
    }
}

Когда я пытаюсь подключиться к своей базе данных, я получаю эту ошибку:

сведения об ошибке, зафиксированные отладчиком

Это из отладчика, когда я ставлю точку останова в операторе catch


person user3308595    schedule 28.11.2018    source источник
comment
что произойдет, если вы запустите это на реальном устройстве Windows CE?   -  person Minijack    schedule 28.11.2018
comment
Я ПОПРОБОВАЛ ЭТО и удалил Integrated Security=SSPI; из строки подключения, как предложил pcdev из моей строки подключения, и это работает! Однако в эмуляторе это не сработало. Я думаю, что мой ноутбук подключен к другой беспроводной сети в соответствии с моим устройством. Изучу это больше и обновлю в своем ответе.   -  person user3308595    schedule 28.11.2018


Ответы (1)


Две вещи цепляют меня:

  • Ваша строка подключения включает Integrated Security=SSPI;, но вы также включаете User ID=username;Password=123456 — так что же это такое, используете ли вы встроенную безопасность (т. е. входите в систему с пользователем Windows, под которым работает программа — учетные данные домена или идентичные учетные данные рабочей группы как на устройстве CE, так и на SQL Server) или вы пытаетесь использовать аутентификацию SQL Server (путем указания идентификатора пользователя и пароля)? Вы не можете использовать оба.
  • Ошибка SQL Server does not exist or access denied подразумевает, что ваше соединение было отклонено, но не говорит, почему. Если это не учетные данные, то это может быть само соединение. Вы проверили, что сервер доступен удаленно с устройства ? Они в одной локальной сети? При использовании физического устройства в сети Wi-Fi имеет ли оно разрешение на связь с другими устройствами в сети (некоторые маршрутизаторы Wi-Fi, особенно корпоративные, имеют возможность разрешать трафик только на шлюз и отклонять запросы на локальные адреса).
person pcdev    schedule 28.11.2018
comment
Привет, я использовал ту же строку подключения, и библиотека в моей визуальной студии 2017 работает просто отлично. Причина, по которой я добавил Integrated Security=SSPI;, заключается в том, что я пробовал без него, и он не работает. Это заставило меня поверить, что с моей Visual Studio 2008 что-то не так. - person user3308595; 28.11.2018