在Xamarin Android中连接到外部数据库

时间:2017-07-19 11:40:53

标签: c# android xamarin xamarin.android

我在使用Xamarin,Android连接数据库时遇到问题。这就是我的尝试:

try
{
    MySqlConnection con = new MySqlConnection("Server=databases.000webhost.com;port=3306;database=id1817024_csftw;User Id=id1817024_csftw;Password=...;charset=utf8");

    if (con.State == ConnectionState.Closed)
    {
        con.Open();
        txtSysLog.Text = "Successfully Connected";
    }
}
catch(MySqlException ex)
{
    txtSysLog.Text = ex.ToString();
}

程序似乎没有连接到数据库,无论是在模拟器上还是在我的Nexus 5X上。在YouTube上观看了很多教程,谷歌搜索问题,但我仍然无法完成这项工作。这段代码是问题,还是我在数据库上的设置?

1 个答案:

答案 0 :(得分:0)

您无法直接连接到xamarin中的外部数据库,您需要在应用和数据库之间使用一个层。该层称为webservice。

我会帮助你做到这一点。

1.首先在000webhost.com上创建一个数据库

2.添加.php或.java文件以连接并在000webhost文件管理器中插入/选择数据库中的数据。

3.在httpclient类的帮助下从您的应用程序访问.php文件。

例如,如果您必须在数据库中插入姓名,电子邮件,电话号码和密码,只需调用.php文件并将参数作为POST或GET传递。

HttpClient http = new HttpClient();
                        string ss = "https://YOUR 000WEBHOST WEBSITE ADDRESS/database.php";
                        var formContent = new FormUrlEncodedContent(new[]
                        {
                            new KeyValuePair<string,string>("Name", name.Text),
                            new KeyValuePair<string,string>("Email",email.Text),
                            new KeyValuePair<string,string>("Mobile", mobile.Text),
                            new KeyValuePair<string,string>("Password",password.Text)
                        });
                        HttpResponseMessage response = await http.PostAsync(ss, formContent);
                        var responsedone = await response.Content.ReadAsStringAsync();