我一直在研究一个简单的c#app(使用Azure SQL数据库)。首先我的应用程序保存一个名称,然后通过单击show all persons,它应该从数据库中检索所有已保存的名称。由于某种原因,我的代码无法从数据库中检索名称,所以当我点击显示所有人时,它没有反应,你能帮我解决这个问题吗?
来自我的其他控制器类:
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;
}
答案 0 :(得分:1)
如果我们测试连接到本地的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;
答案 1 :(得分:-1)
首先确保名称实际上已保存在数据库中。
再次检查控制器是否成功执行而不抛出异常。在try catch中,您记录异常并仍然返回空人列表。所以你不会知道客户端的错误是什么。
第三是确保您已启用Azure服务来访问Azure SQL实例。这可以通过Azure门户完成。
希望这会有所帮助。