[英]Having problems trying to connect to local SQL Server database in Visual Studio 2010 using C#
[英]Trying to connect to my local windows SQL database in a UWP application through Visual Studio
我有一个 UWP 应用程序,我正在使用 visual studio 在 C# 中工作,当我尝试连接到 SQL 数据库时,应用程序返回错误 40,但是当我使用 windows 表单应用程序时,它可以很好地连接到它(使用相同的连接字符串)。 该服务器是使用 windows 开发人员工具托管的客户端服务器。
这是相关代码:
SqlConnection conn = new SqlConnection();
//connection string
private string conString = "Server=(local); Database=Diner; User=Temp; Password=12345";
SqlCommand cmd;
conn.ConnectionString = conString;
cmd = conn.CreateCommand();
try
{
string query = "select * from Meals;";
cmd.CommandText = query;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
lbMeals.Text = "Today's Menu:\n ------------------------------------------\n";
while (reader.Read())
{
int id = (int)reader["MealID"];
string mealName = (string)reader["MealName"];
string mealType = (string)reader["MealType"];
decimal price = (decimal)reader["MealPrice"];
lbMeals.Text += ($"{ id,5}{mealName,-15} {mealType,-15}{price,10}\n");
}
reader.Close();
}
catch (Exception ex)
{
lbSystemMsg.Text = "Failed to connect to Meals table: " + ex.Message;
}
finally
{
cmd.Dispose();
conn.Close();
}
这是我第一次使用 UWP 连接到数据库,所以我可能没有正确配置。 如前所述,服务器正在运行并且可以与 visual studio 中的其他应用程序连接,所以我认为问题是 Visual Studio 的一些配置问题或者可能是不正确的连接字符串格式。
首先,请确保您已经在清单文件中启用了一些功能,它们是Inte.net(Client & Server) 、 Inte.net(Client) 、 Private Networks(Client & Server)和Enterprise Authentication 。
其次,我注意到您正在尝试连接到本地主机。 UWP 应用程序在沙盒中运行,因此它们是隔离的。 UWP 应用默认关闭本地环回。 您需要为您的设备启用本地环回。
您可以通过此命令启用本地环回
c:\>checknetisolation loopbackexempt -a -n=<package family name>
您可以通过此命令禁用本地环回
c:\>checknetisolation loopbackexempt -d -n=<package family name>
有关本地环回的更多信息,请参阅这些文档为 UWP 应用程序启用环回, 进程间通信(IPC) 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.