Я пытаюсь подключить базу данных Microsoft SQL Server 2012 к приложению Xamarin.Android.
Поскольку интернет-исследования говорят мне, что невозможно напрямую подключиться к внешней базе данных в Xamarin и что мне нужнослой между моим приложением и базой данных, я пытался реализовать необходимый WebService с помощью https://www.youtube.com/watch?v=xnO9MbferQo
К сожалению, когда я пытаюсь запустить (нажимая F5 в Visual Studio) этот веб-сервис, он открываетWCF-TestClient (как и должно быть), но после, может быть, после половины индикатора выполнения («добавляет») отображается сообщение об ошибке:
Предупреждение: Es wurde kein Code generiert,Wenn Sie versucht haben, einen Client zu generieren, könnte die Ursache hierfür sein, dass die Metadatendokumente keine gültigen Verträge oder Dienste enthielten od dass erkannt wurde, dass sich al / Vertsteden in Assembly.Stellen Sie sicher, dass alle Metadatendokumente и das Tool übergeben wurden.Предупреждение: Wenn Datenverträge aus Schemas generiert werden sollen, müssen Sie sicherstellen, dass die Option / dataContractOnly verwendet wird.
Извините за этот немецкий.Я пытаюсь перевести это для вас:
Предупреждение: код не был сгенерирован.Если вы пытались сгенерировать клиента, возможной причиной этого могло бы быть то, что документы метаданных не содержат действительных контрактов или услуг или что все контракты / услуги лежат в / reference-Assemblys.Пожалуйста, убедитесь, что все документы метаданных переданы в инструмент.Предупреждение: Если контракты данных генерируются из схемы, вы должны убедиться, что используется опция / dataContractOnly.
Пожалуйста, позвольте мне поделиться своим кодом:
Service1.svc.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace TestWcfService
{
public class Service1 : IService1
{
// Connection string
private readonly string conStr = "data source = [Server-IP]\\[instance_name]; initial catalog = [catalog_name]; user id = [dbusername]; password = [dbpw]; Connect Timeout = 60";
public List<AdrSuche1> GetAdrSuche1()
{
List<AdrSuche1> adrList = new List<AdrSuche1>();
SqlConnection con = new SqlConnection(conStr);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM [table_name]", con)
{
CommandType = CommandType.Text
};
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
AdrSuche1 adrSuche1 = new AdrSuche1
{
Adrsuche1 = reader["column_name"].ToString()
};
adrList.Add(adrSuche1);
}
return adrList.ToList();
}
}
}
IService1.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace TestWcfService
{
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "GetAdrSuche1")]
List<AdrSuche1> GetAdrSuche1();
}
[DataContract]
public class AdrSuche1
{
string adrsuche1;
[DataMember]
public string Adrsuche1
{
get { return adrsuche1; }
set { adrsuche1 = value; }
}
}
}
В чем проблема?Может кто-нибудь помочь мне интегрировать Web Api или WCF Service, чтобы я мог читать данные из внешней базы данных и отображать их в своем приложении?
С уважением