我想将UWP连接到SQL Server数据库。我使用下面的代码来做到这一点。
private LogIn GetDetails(string UserName)
{
SqlConnectionStringBuilder connectionString = new SqlConnectionStringBuilder();
connectionString.DataSource = "IP,Port";
connectionString.InitialCatalog = "Database Name";
connectionString.UserID = "sa";
connectionString.Password = "Password";
var logIn = new LogIn();
try
{
using (SqlConnection conn = new SqlConnection(connectionString.ConnectionString))
{
conn.Open();
if (conn.State == System.Data.ConnectionState.Open)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = $"SELECT * FROM Login where UserName = '{UserName}'";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
logIn.UserName = reader.GetString(0);
logIn.Password = reader.GetString(1);
logIn.Type = reader.GetString(2);
}
}
}
}
}
return logIn;
}
catch (Exception)
{
return null;
}
}
此代码抛出异常
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及SQL Server是否配置为允许远程连接
所以我尝试在Visual Studio的Server Explorer中打开SQL Server数据库。它连接打开正常,但如果我打开Tables文件夹它显示
所以我尝试在SQL Server Management Studio中打开SQL Server数据库。在那,它正常工作。连接打开正常,我也可以查看Tables文件夹中的表。
对错误的地方一无所知。可能在Visual Studio的Code或Server Explorer中或服务器计算机的SQL Server配置中。
已尝试解决方案
使用以下命令启用混合模式
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
答案 0 :(得分:2)
您需要确保在appx清单中声明所需的网络功能。根据您的网络设置/配置,这些是要检查的:
<Capability Name="internetClient" />
<Capability Name="internetClientServer" />
<Capability Name="privateNetworkClientServer" />
<uap:Capability Name="enterpriseAuthentication" />
答案 1 :(得分:0)
您需要启用混合模式和&#39; sa&#39;用户登录。
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
取自here。
答案 2 :(得分:0)
在Package.appxmanifest