(C#)从Azure SQL数据库检索数据的问题

(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; 
     } 
+1

您是否调试过显示所有人的按钮按钮点击?你有什么错误吗?你确认'getPersons'方法代码是否正常工作? –

首先确保的名称实际上得到保存在数据库中。

第二次检查您的控制器是否成功执行而不引发异常。在你的try catch中,你记录异常并且返回一个空的人员列表。所以你不知道客户端的错误是什么。

三是确保您已启用Azure服务来访问您的Azure SQL实例。这可以通过Azure门户完成。

希望这会有所帮助。

如果我们在本地测试连接到Azure sql,我们需要将客户端IP添加到Azure sql Firewall以允许本地访问Azure sql。

enter image description here

如果连接未打开,我们需要打开连接之前检索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;