Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Acessando diretamente um banco de dados Sql Server no Xamarin.Forms


Você não pode acessar diretamente um servidor sql de seu projeto pcl em Xamarin.Forms porque System.Data.SqlClient não está disponível em pcl.

Mas você pode fazer isso por meio de um serviço de dependência .

Primeiro em seu projeto PCL, declare seu serviço
public interface IDbDataFetcher
    {
        string GetData(string conn);
    }

Em seguida, no seu projeto Android, implemente a interface de serviço
[assembly: Dependency(typeof(DbFetcher))]
namespace App.Droid.Services
{
    class DbFetcher : IDbDataFetcher
    {

        public List<string> GetData(string conn)
        {
            using (SqlConnection connection = new SqlConnection(conn))
            {

                SqlCommand command = new SqlCommand("select * from smuser", connection);
                try
                {
                    connection.Open();
                    SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        data.Add(reader[0].ToString());
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    //Console.WriteLine(ex.Message);
                }
            }
            return data;
        }
    }
}

Embora seja uma solução, é um ruim 1. Sempre consuma serviços da web para seus aplicativos móveis