我正在寻找一种通过应用程序访问数据库(sql server或mysql)的方法。棘手的部分是应用程序(基于C#)将出现在几台机器上,并且它们都必须访问相同的数据,这意味着我必须考虑一种托管数据库的方法。这是我需要帮助的地方......我在互联网上找到的所有网站数据库都无法在桌面应用程序或付费托管中访问...从我的机器托管数据库也是一种选择,虽然我不确定是否它是可能的。所以欢迎各种各样的选择。
答案 0 :(得分:1)
你对SQL服务器很好。
访问数据库的代码的唯一要求是它实际上可以访问它(即建立与数据库的连接)。
我最近完成了一个项目,所有计算机(总共7台)已经连接在一个小型办公网络中。其中一台计算机被选为主机并充当数据库服务器,而所有其他“客户机”计算机上的代码包含一个指向这一台主机的连接字符串;我得到的印象就是你所追求的。
考虑到这一点,开发您的应用程序就好像数据库是本地的(我实际上建议您在开发期间针对本地SQL服务器实例执行代码)并且在修改连接字符串时担心以后的数据访问(只要您确定您将拥有允许此连接的设施。)
如果您是新手,我建议您考虑安装SQL服务器配置的额外时间。这不是一项艰巨的任务,但如果您正在计算时间估计值,请不要低估它。
答案 1 :(得分:0)
数据访问是一个独立于应用程序的问题。
如果您的应用程序是基于桌面的或基于Web的,应该无关紧要,因为(Web和桌面)都使用C#,它们使用相同的代码来访问数据库。
如果它位于同一台机器或世界的另一端也无关紧要,它可能(可能)通过TCP / IP进行连接。
你做什么,完全取决于需求/预算。
答案 2 :(得分:0)
桌面应用程序访问的网站数据库!我编写了一组简单的PHP页面,提供从远程Web服务器上的MySQL数据库到桌面Windows窗体应用程序的查询访问。这些页面使用小型PHP脚本来提供插入,选择,更新和删除功能。 C#桌面应用程序通过System.Net.Http.HttpClient将sql语句发布到这些网页。这些页面执行sql并将信息返回给System.Net.Http.HttpResponseMessage对象。
对于select语句,php有一个小脚本,可以将数据库行转换为XML以返回到响应对象。然后,您可以使用System.Data.DataSet通过ReadXml方法导入XML字符串。
我的网站有固定的IP和SSL证书。脚本需要https:// ...并拒绝任何仅使用http:// ...
发出的请求由于往返数据访问时间,应用程序比数据库在本地服务器上的速度慢一点。您可以通过在帖子请求中要求某些凭据来保护访问权限。
一个好处是独立用户无需在特定网络上即可访问数据。
对于您作为开发人员而言,开发具有复杂UI操作的Windows桌面应用程序可能比在网站上进行尝试更容易。