UWP C# SQLConnection - PullRequest
       31

UWP C# SQLConnection

0 голосов
/ 26 марта 2020

Я пишу приложение базы данных в UWP с SQL Сервером Express. Я использую эту базу данных SQL для других приложений, которые я написал в C#. NET, но я пытаюсь изучить UWP для его обновленного интерфейса и стиля MVVM / MVC.

У меня есть правильные включения для доступа к базе данных:

using System.Data;
using System.Data.SqlClient;

У меня есть строка подключения (в App.xaml.cs), такая же, как на другой машине (очевидно, u / p) в маске):

public static string connectionString = @"Data Source=SERVER-FS01\SQLEXPRESS; Initial Catalog=test_prds_jl; User ID=user; Password=password";

У меня есть функция открытия базы данных, которая возвращает набор данных:

public static DataSet retrieveDataFromSQL(string qry, string errorString)
{
    DataSet ds = new DataSet();
    try
    {
         SqlConnection conn = new SqlConnection(App.connectionString);
         Debug.WriteLine(App.connectionString);

         conn.Open();

         SqlDataAdapter da = new SqlDataAdapter(qry, conn);

         da.Fill(ds);

         conn.Close();
   }
   catch (Exception ex)
   {
         Debug.WriteLine(errorString + 
             System.Environment.NewLine + 
             System.Environment.NewLine + 
             queryString + 
             System.Environment.NewLine + 
             System.Environment.NewLine + 
             "Message from server: " + 
             ex.Message);

    }
    return ds;
}

Она отлично работает в моей программе. NET, вот так.

Сравнение с https://docs.microsoft.com/en-us/windows/uwp/data-access/sql-server-databases достаточно близко, чтобы быть тем же самым, за исключением того, что я возвращаюсь к набору данных вместо коллекции класса. (Я туда доберусь, это не проблема).

Как я уже сказал, это прекрасно работает. NET, это прямой порт. Проблема возникает на conn.Open(); Это ошибки с этим:

Message from server: 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: TCP Provider, error: 40 - Could not open a connection to SQL Server)

Если вместо имени сервера я использую IP:

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: TCP Provider, error: 25 - Connection string is not valid)

Единственное, что изменилось с этим есть IP. Оба они работают с. NET. это соответствует строке подключения, предложенной MS.

    // This is an example connection string for using SQL Server Authentication.
    // private string connectionString =
    //     @"Data Source=YourServerName\YourInstanceName;Initial Catalog=DatabaseName; User Id=XXXXX; Password=XXXXX";

Я думаю, что я, должно быть, пропускаю пакет nuget или что-то еще, потому что остальное кажется нормальным. Он останавливается, когда пытается подключиться, затем возвращает ошибку.

Буду признателен за любую помощь

1 Ответ

0 голосов
/ 26 марта 2020

Убедитесь, что следующие возможности включены:

  • privateNetworkClientServer
  • enterpriseAuthentication
  • internetClient
  • internetClientServer
...