如何使用Flutter连接到SQL Server?

时间:2019-04-30 19:41:44

标签: sql-server flutter

我必须将SQL Server与Flutter一起使用,并且没有其他数据库选项,因为我的客户端拥有它。我一直在寻找软件包,但我发现一个不能在移动设备上运行的软件包。没有Web服务或api,有什么选择吗?

2 个答案:

答案 0 :(得分:1)

您需要考虑的第一件事是没有立即且极其有效的解决方案,您必须决定要使用哪些框架和工具。正如评论中提到的,这种情况的市场非常小。但是有一些方法可以解决这个问题。

远程存储示例解决方案:

以下是您应该如何实现这一点的基本示例。此 SO post 中也引用了此内容:

<块引用>

enter image description here

客户端应用

客户端应用程序可以是用户通常使用的任何应用程序。 一些例子:

  • 移动应用(用原生、Dart、Xamarin 等编写)
  • 桌面应用(Electron、WPF...)
  • 网站应用(Angular、React、Vue 等)

API

API 用于检索数据和更改数据。但它也会 处理身份验证、授权、日志记录、处理业务逻辑

数据库

然后您的 API 将执行查询、插入、更新、删除、执行 您选择的数据库上的存储过程。在您的示例 SQL 中 服务器。

如何设置有多种可能性,具体取决于您的 技能、框架知识、您希望如何部署事物。

您希望如何部署它也会限制您的选择。为您 API:

  • 无服务器 API(通过 Azure Functions、AWS Lambda)
  • 云网站(Azure Web 应用)
  • 本地托管的网站
  • Docker 容器

在现实生活中,防火墙通常会变得更加复杂, 应用程序网关、虚拟网络、集群。

答案 1 :(得分:1)

您可以在您的服务器上安装 SQLServerSocket:

https://github.com/nippur72/SqlServerSocket

在安装了SQL Server的服务器机器上后台安装并执行SqlServerSocket.exe。

另外,你需要一个客户:

https://github.com/nippur72/SqlServerSocket/tree/master/DartClient

您可以尝试直接连接和查询到您的 DDBB:

// creates a connection 
var conn = new 
SqlConnection("SERVER=localhost;Database=mydb;Trusted_connection=yes");

// open connection
await conn.open();

// runs a query returning a single value
var howmany = await conn.queryValue("SELECT COUNT(*) FROM Customers");

// runs a query returning a single row
var myFirstCustomer = await conn.querySingle("SELECT name,age FROM Custormers");
print(myFirstCustomer["name"]);

// runs a query returning all rows
var customers = await conn.query("SELECT TOP 10 name,age FROM Custormers");
for(var customer in customers)
{
   print(customer["name"]);
}

// execute a command, returning the number of rows affected
var n = await conn.execute("UPDATE Customers SET age=0");
print("zeroed $n customers");

// disconnect
await conn.close();