(C#)从Azure SQL数据库检索数据的问题
问题描述:
我一直在研究一个简单的c#应用程序(使用Azure SQL数据库)。首先我的应用程序保存一个名称,然后通过点击显示所有人,它应该从数据库中检索所有保存的名称。出于某种原因,我的代码无法从数据库中检索名称,所以当我点击显示所有人时,它并没有反应,你能帮我解决这个问题吗?(C#)从Azure SQL数据库检索数据的问题
从我的休息控制器类:
public List<Person> getPersons()
{
List<Person> persons = new List<Person>();
String sql = "SELECT * from users";
try
{
SqlCommand command = new SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
persons.Add(new Person(reader.GetInt32(0), reader.GetString(1)));
}
}
catch(Exception e)
{
System.Diagnostics.Debug.WriteLine("Error in getPersons(): " + e.Message);
}
return persons;
}
答
首先确保的名称实际上得到保存在数据库中。
第二次检查您的控制器是否成功执行而不引发异常。在你的try catch中,你记录异常并且返回一个空的人员列表。所以你不知道客户端的错误是什么。
三是确保您已启用Azure服务来访问您的Azure SQL实例。这可以通过Azure门户完成。
希望这会有所帮助。
答
如果我们在本地测试连接到Azure sql,我们需要将客户端IP添加到Azure sql Firewall以允许本地访问Azure sql。
如果连接未打开,我们需要打开连接之前检索Azure的SQL数据库中的数据。我们也可以设置断点来获取更多详细的错误信息。
try
{
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
SqlCommand command = new SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
persons.Add(new Person(reader.GetInt32(0), reader.GetString(1)));
}
}
catch(Exception e)
{
System.Diagnostics.Debug.WriteLine("Error in getPersons(): " + e.Message);
}
return persons;
您是否调试过显示所有人的按钮按钮点击?你有什么错误吗?你确认'getPersons'方法代码是否正常工作? –