如何让silverlight从MySQL获取数据

Isa*_*avo 1 .net c# mysql data-binding silverlight

我在Silverlight中编写了一个小型的hello world测试应用程序,我想在Linux/Apache2服务器上托管.我希望数据来自MySQL(或其他一些兼容Linux的数据库),以便我可以数据绑定到数据库中的内容.

我已经设法通过使用MySQL Connector/.NET来实现它:

MySqlConnection conn = new MySqlConnection("Server=the.server.com;Database=theDb;User=myUser;Password=myPassword;");
conn.Open();
MySqlCommand command = new MySqlCommand("SELECT * FROM test;", conn);
using (MySqlDataReader reader = command.ExecuteReader())
{
     StringBuilder sb = new StringBuilder();
     while (reader.Read())
     {
         sb.AppendLine(reader.GetString("myColumn"));
     }
     this.txtResults.Text = sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)

如果我给已发布的ClickOnce应用程序完全信任(或至少是SocketPermission)并在本地运行它,这可以正常工作.

我希望这在服务器上运行,我无法让它工作,总是以权限异常结束(不允许SocketPermission).

数据库与silverlight应用程序托管在同一服务器上,如果这有任何区别的话.

编辑 好的,我现在明白为什么在客户端应用程序中显示数据库凭据是一个坏主意(显然).人们如何做到这一点呢?如何保护代理Web服务,以便以安全的方式将数据传入和传出客户端/数据库?网上有没有任何例子?

当然,我不能成为第一个使用数据库为Silverlight应用程序提供动力的人?

Mat*_*asS 5

虽然"官方"的答案是使用WCF将服务推送到Silverlight,但我认为使用MySQL的任何人可能都不会使用完整的ASP.NET解决方案.我的解决方案是构建一个PHP Web服务(如Rob建议的)与MySQL数据库交互并让Silverlight以RESTful方式访问它.

以下是使用Silverlight通过PHP Web服务访问MySQL数据库的三部分教程的开始:

PHP,MySQL和Silverlight:完整教程