连接到SQL Server会引发异常

时间:2016-06-09 06:51:43

标签: c# sql-server xamarin xamarin.android

我有一个任务,我需要编写一个简单的应用程序来处理来自SQL Server的一些数据。该过程正在使用虚拟数据,但我无法连接到服务器以获取有效数据。

我有这样的代码:

string ConnectionString = @"Server=----;Database=----;User ID=----;Password=*******";

string field1, field2;    

try
{
    using (SqlConnection Connection = new SqlConnection(ConnectionString))
    {
        Connection.Open();

        using (IDbCommand dbcmd = Connection.CreateCommand())
        {
            string sql = "SELECT * from [---].[dbo].[Components]";
            dbcmd.CommandText = sql;

            using (IDataReader reader = dbcmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    field1 = (string)reader["field1"];
                    field2 = (string)reader["field2"];
                }
            }
        }
    }

    Console.WriteLine("Success");
}
catch (Exception e)
{
    Console.WriteLine("Failure");
    Console.WriteLine(e.Message);
}

我的问题是,如果我在一个简单的C#应用​​程序中运行此代码,它可以工作,没问题,但是当我尝试在Xamarin应用程序中使用它时,Connection.Open()会抛出异常并显示以下消息:

  

服务器不存在或连接被拒绝

这是我的问题,当我将其作为应用程序运行时,我真的不知道为什么会发生这种情况。这个问题甚至出现在android模拟器中,它在理论上使用与c#应用程序相同的网络。

我是否需要更改应用中的选项,或问题出在服务器端?

我知道直接连接不是最好的主意,但应用程序将在安全网络内部使用,因此这不应该是问题。

1 个答案:

答案 0 :(得分:1)

Android模拟器未设置正确的DNS网络参数,因此您的应用程序无法解析SQL服务器的域名。

因此,在连接字符串中尝试设置SQL Server的IP地址而不是域名。

string ConnectionString = @"Server=192.168.XXX.XXX;Database=MyDatabase;User ID=MyUser;Password=MyPassword";