【发布时间】:2019-08-06 09:51:30
【问题描述】:
我的程序需要帮助。我声明我仍然是初学者,如果问题很简单,请见谅。
问题:我使用 SqlConnection 完成了我的 REST Web 服务的开发。我现在的问题是使我在 xamarin 表单应用程序(当前是静态的)上的数据动态化。
下面是我静态声明数据的部分代码:
public class MockDataStore: IDataStore <Item>
{
List <Item> items;
// Allow me to assign values to the declared variables
public MockDataStore ()
{
items = new List <Item> ();
var mockItems = new List <Item>
{
new Item {Id = Guid.NewGuid (). ToString (), Nome_cognome = "1xxx1", Email = "xxx", Phone = 3333333333, Role = "Programmer", ActivityMattina = "Is updating the databases", ActivitiesAfternoon = "Presentation ", Number_Inside = 123},
new Item {Id = Guid.NewGuid (). ToString (), Nome_cognome = "2xx2", Email = "xxx", Phone = 3333333333, Role = "Programmer", ActivityMattina = "Is updating the databases", ActivitiesAfternoon = "Presentation ", Number_Inside = 123},
new Item {Id = Guid.NewGuid (). ToString (), Nome_cognome = "3xxx3", Email = "3xxx3", Phone = 3333333333, Role = "Programmer", ActivityMattina = "Is updating the databases", ActivitiesAfternoon = "Presentation ", Number_Inside = 123},
};
foreach (var item in mockItems)
{
Items.Add (item);
}
}
这里是我在我的网络服务上运行的查询:
public List <Agenda> Rooms ()
{
List <Ansagenda> list = new List <Ansagenda> ();
string queryString = "SELECT CDSISM, DESISM, TYPE, GSM, EMAIL, IP FROM [dbo]. [ANSIS00F] WHERE CDSISM = '44 'AND ANSIS00F.TIPO =' X ';";
// string queryString = "SELECT CDSISM, DESISM, TYPE, GSM, EMAIL, IP, AGSIS, AGMAT, AGPOM, AGDAT, ORDER FROM [dbo]. [ANSIS00F] INNER JOIN [dbo]. [AGENDA] ON [CDSISM] = [AGSIS] WHERE ANSIS00F.TIPO = 'X' ORDER BY DESISM ASC, AGDAT ASC; ";
SqlCommand command = new SqlCommand (queryString, connection);
SqlDataAdapter adapter = new SqlDataAdapter (command);
DataTable table = new DataTable ();
connection.Open ();
adapter.Fill (table);
connection.Close ();
foreach (DataRow dr in table.Rows)
{
list.Add (new Ansagenda
{
CDSISM = Convert.ToString (dr ["CDSISM"]),
DESISM = Convert.ToString (dr ["DESISM"]),
TYPE = Convert.ToString (dr ["TYPE"]),
GSM = Convert.ToString (dr ["GSM"]),
EMAIL = Convert.ToString (dr ["EMAIL"]),
IP = Convert.ToString (dr ["IP"]),
});
}
return list;
}
【问题讨论】:
-
您的 Xamarin 应用程序需要通过正确的 URL 向 Web 服务发出 HTTP 请求,然后接收服务器发回的数据。你这样做了吗?你所说的“动态”到底是什么意思?您是否在询问如何将参数传递给 web 服务,以便它可以改变响应(例如,通过特定字段或其他内容过滤数据)?有点不清楚该过程的哪一部分导致您出现问题。
-
动态意味着:我想使用我的网络服务上的数据并在我的应用程序中查看它们
-
好的。那么你只需要让你的 Xamarin 代码使用正确的 URL 向 API 服务器发出 HTTP 请求,然后接收响应,将其从 JSON 解码为合适的 C# 类结构,然后你可以使用该数据来填充你的用户界面视图。很确定你可以很容易地研究如何在线完成这些任务——这是一个非常常见的场景。可能您可以找到完整显示此类过程演示的端到端教程。然后,您可以针对您的特定数据集进行调整。到目前为止,您是否进行过任何研究?
标签: c# api web-services xamarin webservice-client