Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将数据从REST Web服务发送到Xamarin应用程序?_C#_Api_Web Services_Xamarin_Webservice Client - Fatal编程技术网

C# 如何将数据从REST Web服务发送到Xamarin应用程序?

C# 如何将数据从REST Web服务发送到Xamarin应用程序?,c#,api,web-services,xamarin,webservice-client,C#,Api,Web Services,Xamarin,Webservice Client,我的程序需要帮助。我声明我还是一个初学者,如果这个问题很琐碎,我很抱歉 问题:我使用SqlConnection完成了REST Web服务的开发。我现在的问题是将xamarin表单应用程序中的数据(当前为静态)动态化 下面是我静态声明数据的代码的一部分: public class MockDataStore: IDataStore <Item>     {         List <Item> items;         // Allow me to assign v

我的程序需要帮助。我声明我还是一个初学者,如果这个问题很琐碎,我很抱歉

问题:我使用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);
            }
        }
公共类MockDataStore:IDataStore
    {
清单项目;
//允许我赋值​​到声明的变量
公共数据存储()
        {
项目=新列表();
var mockItems=新列表
            {
                
新项目{Id=Guid.NewGuid().ToString(),Nome_cognome=“1xxxx1”,Email=“xxx”,Phone=3333,Role=“Programmer”,ActivityMattina=“正在更新数据库”,activities午后=“Presentation”,Number_Inside=123},
新项目{Id=Guid.NewGuid().ToString(),Nome_cognome=“2xx2”,Email=“xxx”,Phone=3333,Role=“Programmer”,ActivityMattina=“正在更新数据库”,activities午后=“Presentation”,Number\u Inside=123},
新项目{Id=Guid.NewGuid().ToString(),Nome_cognome=“3xx3”,Email=“3xx3”,Phone=3333,Role=“Programmer”,ActivityMattina=“正在更新数据库”,activities午后=“Presentation”,Number\u Inside=123},
           };
foreach(mockItems中的var项)
            {
Items.Add(item);
            }
        }
这里是我在Web服务上运行的查询:

公共列表室()
        {
列表=新列表();
string queryString=“从[dbo].[ANSIS00F]选择CDSISM、DESISM、类型、GSM、电子邮件、IP,其中CDSISM='44'和ANSIS00F.TIPO='X';”;
//string queryString=“选择CDSISM、设计、类型、GSM、电子邮件、IP、AGSIS、AGMAT、AGPOM、AGDAT、来自[dbo]。[CDSISM]=[AGSIS]上的[ANSIS00F]内部连接[dbo]。[AGENDA]其中ANSIS00F.TIPO='X'由设计ASC、AGDAT ASC订购;”;
SqlCommand=newsqlcommand(queryString,connection);
SqlDataAdapter=新SqlDataAdapter(命令);
DataTable=新的DataTable();
connection.Open();
适配器。填充(表格);
connection.Close();
foreach(table.Rows中的数据行dr)
            {
list.Add(新的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”]),
                });
            }
退货清单;
        }

如果你想在应用程序中显示来自服务器的数据,你需要以某种方式获取它们。你可以通过向服务器发出HTTP请求来实现这一点。让我们从一个问题开始:你可以向服务器索要议程列表吗?你可以通过浏览器/邮递员来完成吗

我强烈建议你应该在你的应用程序中阅读并尝试做一些类似的事情。这并不难做到,使用Refit有很多优点


当然,你可以自己提出请求,但我不确定当有很多库可以这样做时,这是否有意义。

如果你想在应用程序中显示来自服务器的数据,你需要以某种方式获取它们。你可以通过向服务器发出HTTP请求来实现。让我们从一个问题开始:你能问你的服务器吗查看议程列表?您可以通过浏览器/邮递员完成吗

我强烈建议你应该在你的应用程序中阅读并尝试做一些类似的事情。这并不难做到,使用Refit有很多优点


当然,您可以自己提出请求,但我不确定当有许多库能够这样做时,这是否有意义。

您的Xamarin应用程序需要在正确的URL向Web服务发出HTTP请求,然后接收服务器发回的数据。您做到了吗?您所说的“动态”是什么意思准确地说?您是否在询问如何将参数传递给Web服务,以便它可以改变响应(例如,按特定字段或其他内容过滤数据)?有点不清楚流程的哪一部分会给您带来问题。动态意味着:我想使用web服务上的数据,并在applicationOk中查看这些数据。然后,您只需获取Xamarin代码,以正确的URL向API服务器发出HTTP请求,然后接收响应,将其从JSON解码为合适的C#类结构,然后您可以使用该数据填充您的用户界面视图。非常确定您可以非常轻松地在线研究如何完成这些任务-这是一个非常常见的场景。可能您可以找到完整演示此过程的端到端教程。然后您可以根据特定的数据集对其进行调整。有到目前为止,您做过任何研究吗?您的Xamarin应用程序需要在正确的URL向Web服务发出HTTP请求,然后接收服务器发回的数据。您做过了吗?您做了什么
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;
        }