В настоящее время я разрабатываю мобильное приложение на базе 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
Я ПОПРОБОВАЛ ЭТО и удалил Integrated Security=SSPI;
из строки подключения, как предлагал pcdev из моей строки подключения, и это работает! Однако в эмуляторе это не сработало, я думаю, что мой ноутбук подключен к другой WLAN в соответствии с моим устройством. Я исследую это подробнее и обновлю в своем ответе.
Мне запомнились две вещи:
Integrated Security=SSPI;
, но вы также включаете User ID=username;Password=123456
- так что это такое, используете ли вы встроенную безопасность (т. Е. Вход в систему с пользователем Windows, под которым работает программа - учетные данные домена или идентичные учетные данные рабочей группы как на устройстве CE, так и на SQL Server), или вы пытаетесь использовать аутентификацию SQL Server (указав идентификатор пользователя и пароль)? Вы не можете использовать оба.SQL Server does not exist or access denied
означает, что ваше соединение было отклонено, но не говорит почему. Если это не учетные данные, то это может быть само соединение. Вы проверили, что сервер удаленно доступный от устройства? Они в одной локальной сети? При использовании физического устройства в сети Wi-Fi, есть ли у него разрешение на связь с другими устройствами в сети (некоторые маршрутизаторы WiFi, особенно корпоративные, имеют возможность разрешать только трафик на шлюз и отклонять запросы на локальные адреса).Привет, я использовал ту же строку подключения и библиотеку в своей визуальной студии 2017, работает нормально. Причина, по которой я добавил Integrated Security=SSPI;
, заключается в том, что я пробовал без него, но он не работает. Это заставило меня поверить, что с моей Visual Studio 2008 что-то не так.
что произойдет, если вы запустите это на реальном устройстве Windows CE?