微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 Android Flutter 应用程序和 asp.net 站点与 sql server 数据库连接

如何解决如何将 Android Flutter 应用程序和 asp.net 站点与 sql server 数据库连接

我有 Android Flutter 应用程序和 asp.net 站点,我想将这两个应用程序与 sql server 数据库连接 我搜索并发现我可以使用 API 连接它们

我听说过 Laravel API、restfull API、sqlServerSocket 和 Azure API

我真的很困惑如何完成整个问题!! 什么时候使用? 什么是差异? JSON文件解析怎么样?

无论如何都可以帮助理解将这些应用程序与 sql server db 链接的概念吗?

解决方法

有几种方法可以做到这一点。 在一种情况下,我使用了 jtds 驱动程序并直接连接到 sql server。没有网络服务器,根本没有中间系统。如果您要与 SQL 服务器在同一网络上,这可能会起作用。它可以快速而肮脏 - 并且不需要网络系统。然而,这并不是真正推荐的方法。但是我确实根据这个想法写了一个 sqlite->sql server 同步例程。所以当你回到工作地点时,你在同一个网络(wifi)上,因此android可以直接连接到sql server。如前所述,这用途有限,当然不适合从电话到某个数据库的“实时”连接,比如在路上旅行时。

但是这种类型的直接连接很方便,不需要任何网站。但它确实需要直接连接到 sql 服务器。因此,在场外,此设置需要 VPN。

这种所谓的 jdbc“直接”连接非常类似于使用 ODBC。 (jdbc 直接类型 4 连接)。我用过这个:

http://jtds.sourceforge.net/

然而,首选方法 - 由于“许多”原因(一个是安全性),那么这里的标准建议是:

让手机对网站进行“网络服务”调用,然后网站会为您访问数据库。

因此,如果您在纸上进行研究,您可能需要说:

Get Active pick ups (say this is some kind of pick up system to pick up say bottles)

所以手机可以有一个本地数据库来进行大多数操作。但是在网站上,您将(可以)构建一个 Web 服务调用。说“GetPickUps”。然后,该 Web 服务调用将从数据库中提取活动的挂起接听并将数据返回到电话(可能是 xml,或者现在更好的 JSON 格式)。

那么,说什么时候选择完成?然后你可能会在显示接听电话的同时打电话,你有一个“完成”按钮。当您点击完成后,您需要更新取件状态

所以,这有点像在 SQL Server 中构建存储过程。您构建了一些“网络方法”。所以我们可以说构建一个名为

的网络方法
PickUpDone    pickupID

因此,您调用名为 PickUpDone 的 Web 服务(并将 pickID 传递给它),然后该网站上的 routien 将更新给定取件的状态。

什么样的网络服务调用? 好吧,您可以使用 SOAP + xml,但现在大多数使用 REST 调用。这只是一个网站 url 的花哨术语。因此,我们的拾取完成 REST 调用可能如下所示:

www.mycoolsite.com/WebServices/PickUpDone&?pickupID=12345

现在您确实将其标记为 asp.net。

因此,如果您在 Web 端代码中编写并公开标准 C#(或 vb.net)子,请说如下:

<WebMethod()>
Public Sub PickUpDone(pickupID as integer)
   ' code here to update data base
End sub

此时,以上就是您需要做的全部。在 asp.net 中,当标记 + 标记为“web 方法”时,上面的例程现在开箱即用支持soap、REST,甚至会返回 json 或 xml(对上述内容没有任何更改!!!)。

现在在某些情况下?好吧,您真的不知道提前知道您需要哪些“集合”功能和 Web 服务调用。所以随着时间的推移,一些有进取心的人决定这样做:

为什么不创建一个接受任何 SQL 更新语句并运行它的 Web 服务调用!因此,您在 Web 服务器上安装了许多“流行”的桥接器或系统,然后是一个符合向该 Web 服务发送 sql 语句的客户端。因此,您可以创建新的 sql 更新等,而不必编写新的 Web 服务。 (这些是 jdbc 类型 2 和 3 系统)。

这些系统中的大多数都是用 PHP 编写的——我不知道是否为 .net(和 asp.net 站点)编写了 jdbc 驱动程序和设置。因此,代替执行“特定”任务的自定义 Web 服务调用,您可以采用 jdbc 驱动程序,该驱动程序可以简单地将 sql 语句从手机传入和拉出网站“服务”,然后再访问数据库。实际上,Web 服务变成了一种“某种”ODBC 类型的驱动程序,其中执行数据库更新的代码和逻辑来自手机上的代码。我认为在大多数情况下,最好将其分解为一组“任务”和自定义 Web 服务调用。

如前所述,无需任何额外工作即可开箱即用的 Web 服务调用支持 SOAP、带有标头的回传和 REST 调用 - 并且无需您额外工作即可实现这一点。

所以在一天结束时?在某些情况下,您可以直接连接到数据库 - 中间没有 Web 服务器。但这具有有限的连接选项(您不能在旅途中让互联网上的每个人直接点击并与数据库交谈 - 因此您需要浏览网站)。

因此您可以采用“通用”方法。您在网站上安装一些代码并支持 jdbc 驱动程序 - 然后所有代码和更新都可以从手机客户端完成。

但是,就像在使用 SQL Server 时编写和构建一组存储过程往往会更好一样,这同样适用于这里,但现在谈论的是您在网站上创建的一组 Web 服务,然后在转将被电话呼叫。您最好在服务器端创建这些 Web 服务,因为这样在线网站也可以使用和使用您编写的代码。因此,您的网站和手机在许多操作中都使用相同的代码库。

总结:

you can direct connect to sql server - no web services at all

you can write web service web calls

you can adopt a "general" web service that accepts sql commands 
from client side and passes that to sql server. So this is a "one time"
setup of one web service on the web site,and then it facilitates all calls from
the client side - in this case a phone. However,it tends to be far easier
to write server side code with the server side tools,and thus in most cases
writing custom web services calls is the preferred approach. (since you writing
server side code - and that can be used by other non Android phones or even
the web site code (JavaScript and ajax calls).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。