要让 Flutter 应用程序连接到本地的 SQL Server 数据库,你需要遵循以下步骤:
pubspec.yaml
文件里添加一个名为 flutter_sqlcipher
的依赖库。dependencies:
flutter:
sdk: flutter
flutter_sqlcipher: ^0.5.2
然后运行 flutter pub get
。
TrustServerCertificate=true
配置可以跳过证书验证。db_helper.dart
的文件,编写以下代码:import 'dart:io';
import 'package:flutter_sqlcipher/sqlcipher.dart';
import 'package:path/path.dart' as p;
class DBHelper {
static const String DB_NAME = 'my_database.db3';
Future<SqlCipherDatabase> getDatabase() async {
var databasePath = p.join(await getDatabasesPath(), DB_NAME);
return await openDatabase(
databasePath,
password: 'my_secret_password',
version: 1,
singleInstance: true,
);
}
}
String sqlServerConnectionString = 'Server=my_server_ip_or_hostname,1433;Database=my_database_name;User Id=my_username;Password=my_password;TrustServerCertificate=true;';
dart:io
功能和 sqlcipher
库来执行原始 SQL 查询:import 'dart:io';
import 'package:flutter_sqlcipher/sqlcipher.dart';
Future<void> main() async {
final dbHelper = DBHelper();
final database = await dbHelper.getDatabase();
// Connect to SQL Server using the connection string
await database.execute("ATTACH DATABASE '$sqlServerConnectionString' AS sqlserver_db");
// Execute a query
final results = await database.rawQuery('SELECT * FROM my_table_name');
// Fetch and print the results
for (var row in results) {
print(row);
}
// Close the database
await database.close();
}
注意: 以上代码中使用的 TrustServerCertificate=true
是用于测试目的,在生产环境中,请勿使用这个选项,因为它会让你的应用程序变得不安全。始终使用有效证书并将 TrustServerCertificate
设置为 false
。
这样,您就可以在 Flutter 应用程序中查询本地 SQL Server 数据库了。请注意,使用 Flutter 连接 SQL Server 可能会影响应用程序的性能,因为 Flutter 和原生平台之间存在通信延迟。如果可能的话,建议您寻找其他方法来实现本地数据库连接,例如使用 SQLite。
没有搜到相关的文章