错误:无法连接到SQL Server浏览器。确保已启动SQL Server浏览器

时间:2020-09-16 09:28:48

标签: c# sql-server xamarin

我共享我的代码以连接到SQLSERVER:

public class Context:DbContext
{
    private readonly IDbConn dbConn;
    public Context()
    {
        dbConn = new DbConn();
    }

    public DbSet<table1> t1{ get; set; }
    public DbSet<table2> t2{ get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(dbConn.Connection);
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<table1>().HasKey(x => new { x.column1, x.column2});

        modelBuilder.Entity<table2>().HasKey(x => new { x.column1, x.column2});
    }
}
public class DbConn : IDbConn
{
    private SqlConnection sqlConnection;

    public SqlConnection Connection
    {
        
        get
        {
            return new SqlConnection(@"SERVER=xxxxxxx;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");
        }
    }
}
public class Test
{
    public static table1 GetFirst()
    {
        using (var context = new Context())
        {
            var cb = context.t1.FirstOrDefault();    //The error occurs here
            return cb;
        }
    }

}

我是XAMARIN项目的初学者。 我尝试连接到SQLSERVER并尝试从数据库中获取一些数据,但是当我执行LINQ请求时,出现错误。我已经尝试更改connectionStrings,但仍然有相同的错误。 有人可以帮助我解决此错误。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为,如果您的sql server位于固定端口上,则只能说出它正在使用哪个端口。通常不需要标准端口

return new SqlConnection(@"Data Source=xxxxxxx,portnumberhere;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");

如果使用的是动态端口,通常需要提供实例名称。

return new SqlConnection(@"Data Source=xxxxxxx\myinstance;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");

检查是否没有防火墙阻止您与正在使用的服务器之间的通信,并且如消息所示,在某些情况下,您可能需要确保数据库服务器上的浏览器服务正在运行,尤其是在使用动态端口时。

browser service

编辑:

我认为问题可能出在您使用的地方

return new SqlConnection(@"SERVER=xxxxxxx;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");

代替

return new SqlConnection(@"Data Source=xxxxxxx;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");